首页 > 其他 > 详细

UDP知识点

时间:2020-04-26 19:30:04      阅读:48      评论:0      收藏:0      [点我收藏+]

一、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));
        }
    }
}
这样控制台输入什么 后面就能输出什么;打印结果如下:
技术分享图片

 

 技术分享图片

 

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

 

UDP知识点

原文:https://www.cnblogs.com/lxc127136/p/12781526.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!