DatagramPacket对象

        // 发送端
        Scanner sc = new Scanner(System.in);
        // 1.创建数据包对象,封装要发送的数据,接收端的IP,接收端的接口
        InetAddress inet = InetAddress.getByName("192.168.1.172");
        // InetAddress inet =InetAddress.getLocalHost();//本机
        // 2.创建码头对象,进行数据包的发送
        DatagramSocket ds = new DatagramSocket();
        while (true) {
            System.out.println("请输入要传输的数据:");
            String mes = sc.nextLine();
            byte[] b = mes.getBytes();
            DatagramPacket dp = new DatagramPacket(b, b.length, inet, 8000);
            ds.send(dp);
        }
        // 3.关闭资源
        // ds.close();
//接收端
        //1.创建码头,绑定端口号
        DatagramSocket ds =new DatagramSocket(8000);
        //2.创建字节数组,接收发来的数据
        byte [] b =new byte [1024];
        while(true){
            //3.创建数据包对象
            DatagramPacket dp =new DatagramPacket(b, b.length);
            //4.接收数据
            ds.receive(dp);
            //5.拆包
            int len =dp.getLength();
            String ip =dp.getAddress().getHostAddress();
            int port =dp.getPort();
            System.out.println("ip:"+ip+"端口号:"+port+"内容:"+new String (b,0,len));

UDP协议,接收端不需要明确数据的来源,只需要接收到数据即可。

DatagramPacket创建对象时,指定了数据的IP地址和端口号,

receive 方法 --接收数据包

send 方法 -- 发送数据包

 

转载于:https://www.cnblogs.com/Jxliu/p/9234762.html

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值