1、实现一个简单的服务端接收客户端输入的信息然后在服务端显示

实现一个简单的服务端接收客户端输入的信息然后在服务端显示

方法签名 方法说明
DatagramSocket(int port,InetAddress laddr) 创建一个数据报套接字,绑定到指定的本地址
DatagramSocket(SocketAddress bindaddr) 创建一个数据报套接字,绑定到指定的本地套接字地址
void bind(SocketAddress addr) 将此DatagramSocket绑定到特定的地址和端口
void connect(InetAddress address, int port) 将套接字连接到此套接字的远程地址
void receive(DatagramPacket p) 从此套接字接收数据报包
void close() 关闭此数据报套接字
void send(DatagramPacket p) 从此套接字发送数据报包

UdpServer.java:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketAddress;
import java.net.SocketException;

// 实现一个简单的服务端接收客户端输入的信息然后在服务端显示
public class UdpServer{
   
    // 定义 udp 端口号
    public static final int PORT=30000;
    // 每个数据报最大为 4k
    private static final int DATA_LEN=4096;
    // 接收网络数据的字节数组
    byte[] buff_in=new byte[DATA_LEN];
    // 以指定字节数组创建准备接受数据的 DatagramPacket 对象
    private DatagramPacket packet_in=new DatagramPacket(buff_in,buff_in.length);

    // 定义一个用于发送的 DatagramPacket 对象
    private DatagramPacket packet_out;

    public void start() throws SocketException {
   
        try(DatagramSocket socket=new DatagramSocket(PORT)){
   
            // 客户端输入的英文单词
            String word=null;
            // 获取客户端对象,通过该对象将数据写给对方,否则没有目的地
            SocketAddress address=null;
            // 返回给客户端的数据
            byte[] reviceData=null;
            System.out.println("服务端启动了......");

            while(true){
   
                // 获取 socket 中的数据,然后将数据封装到 packet_in 中
                socket.receive(packet_in);
                // 获取客户端输入的数据
                buff_in=packet_in.getData();
                // 将 byte数组转换为字符串,需要去掉后面的空格
                word=new String(buff_in,0,buff_in.length).trim();
                System.out.println("客户端输入的是:"+word);
                address=packet_in.getSocketAddress();
                // 检查退出条件
                if("down".equals(word)){
   
                    reviceData="服务器
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值