UDP知识点

一、UDP通信的过程就像是货运公司在两个码头间发送货物一样,

JDK中提供了DatagramPacket类、DatagramSocket,用于封装UDP通信中发送或者接收的数据。

 

public class UDPsend {

    public static void main(String[] args) throws IOException {
        // 创建socket对象
        DatagramSocket ds = new DatagramSocket();
        Scanner sc = new Scanner(System.in);
        while (true) {
            // 创建数据包发送的数据
            byte[] by = sc.next().getBytes(); //控制台输入什么 后面就能输出什么
            InetAddress ine = InetAddress.getByName("127.0.0.1"); //发送的ip地址 以本机为准   假如要发送到别人电脑上 需要在同一局域网下
            // 明确接受端的ip和端口号
            DatagramPacket dp = new DatagramPacket(by, by.length, ine, 7777);
            // 发送
            ds.send(dp);
        }
    }
}

 

public class UDPRecieve {

    public static void main(String[] args) throws IOException {
        // 创建Socket 对象 明确端口号
        DatagramSocket ds=new DatagramSocket(7777);
        //创建字节数组接受数据
        byte[] by=new byte[1024];
        while(true){
            //创建数据包对象
            DatagramPacket dp=new DatagramPacket(by, by.length);
            ds.receive(dp);
            //拆包
            //获取数据长度
            int length = dp.getLength();
            //获取ip地址
            String ip=dp.getAddress().getHostAddress();
            //获取端口号
            int port = dp.getPort();
            System.out.println("ip地址为" + ip + "端口号" + port + "" + "发送的内容:" + new String(by, 0, length));
        }
    }
}
这样控制台输入什么 后面就能输出什么;打印结果如下:

 

 

 

 欢迎各位大神指点和评论;

 

posted @ 2020-04-26 18:35  丿狂奔的蜗牛  阅读(155)  评论(0编辑  收藏  举报