多线程-网络通信协议

UDPSend

public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        //创建快递公司对象
        DatagramSocket ds=new DatagramSocket();
        //明确要发送的地址
        InetAddress inet=InetAddress.getByName("127.0.0.1");
        //明确要发送的内容
        while(true){
        byte[] bytes=sc.next().getBytes();
        //创建打包对象,封装数据,明确目的地
        DatagramPacket dp=new DatagramPacket(bytes, bytes.length,inet,8888);
        //发送数据包
        ds.send(dp);
        }
        //释放资源
        //ds.close();
    }

UDPRecieve

public static void main(String[] args) throws IOException {
        //创建快递公司对象,明确端口号
        DatagramSocket ds=new DatagramSocket(8888);
        //创建字节数组等着接受数据
        byte[] bytes =new byte[1024];
        //创建拆包对象
        while(true){
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);
        //接受数据包
        ds.receive(dp);
        //拆包
        //获取发送端的ip地址
        String ip=dp.getAddress().getHostAddress();
        //获取发送端的端口号
        int port=dp.getPort();
        //获取数据长度
        int len=dp.getLength();
        System.out.println("ip地址为:"+ip+",端口号为:"+port+",发送的内容为:"+new String(bytes,0,len));
        }
        //释放资源
        //ds.close();
    }

先执行UDPRecieve

再执行UDPSend

posted @ 2021-07-27 11:09  XY12313  阅读(65)  评论(0)    收藏  举报