首页 > 经验记录 > java > UDP通信小练习

UDP通信小练习

话说没有传输的对象,自己传给自己玩= =

 

实现UDP协议的发送端
实现封装数据的类:java.net.DatagramPacket 将数据包装
数据传输的类: java.net.DatagramSocket 将数据包发出去

实现步骤
1 创建DatagramPacket对象,封装数据,接受的地址和端口
2 创建DatagramSocket
3 调用DatagramSocket方法send,发送数据包
4 关闭资源

public class UDPSend {
    public static void main(String[] args) throws IOException{
        //创建出数据包对象,封装要发送的数据,接收端IP,端口
        byte[] date = “你好UPD”.getBytes();
        //创建InetAddress对象,封装自己的IP
        InetAddress inet = InetAddress.getByName(“127.0.0.1”);
        //意思是 把date数组,全部长度,发给inet所代表的地址,的6000端口
        DatagramPacket dp = new DatagramPacket(date, date.length,inet,6000);
        //创建DategramSocket对象,数据包的发送和接收对象
        DatagramSocket ds = new DatagramSocket();
        ds.send(dp);
        ds.close();

    }


/*(注释的小星星懒得删了,就这样吧)
* 实现UDP接收端
* 实现封装数据包 java.net.DatagramPacket 将数据接收
* 实现输出传输 java.net.DatagramSocket

* 实现步骤:
* 1 创建DatagramSocket对象 绑定端口号
* 要和发送端的一致
* 2 创建一个字节数组 准备接收发来的数据
* 3 创建数据包对象DatagarmPacket
* 4 调用DatagramSocket对象方法 receive(DatagarmPacket dp) 接收数据,数据放在数据包中
* 5 拆包
* 发送的IP地址
* 数据包对象DatagarmPacket方法 getAddress()获取的是发送端的IP地址对象 返回值是InetAddress对象
* 接收到的字节个数
* 数据包对象DatagarmPacket方法 getLength()
* 发送方的端口号
* 数据包对象DatagarmPacket方法 getPort()
* 6 关闭资源
*/

public class UDPReceive {
    public static void main(String[] args) throws IOException{
        //创建数据包传输对象DatagramSocket 绑定端口号
        DatagramSocket ds = new DatagramSocket(6000);
        //创建字节数组 等着装数据
        byte[] data = new byte[1024];
        //创建数据包对象,传递字节数组
        DatagramPacket dp = new DatagramPacket(data,data.length);
        //调用ds对象的方法receive传递数据包
        ds.receive(dp);

        //获取发送端的IP地址对象
        String ip = dp.getAddress().getHostAddress();

        //获取发送的端口号
        int port = dp.getPort();

        //获取接收到的字节个数
        int length = dp.getLength();

        System.out.println(new String(data,0,length)+”…来自于”+ip+”…端口号是”+port);
        ds.close();
    }
}

 


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00