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 方法 -- 发送数据包

 

posted @ 2018-06-27 16:44  淅沥沥丶下雨  阅读(249)  评论(0编辑  收藏  举报