UDP网络传输学习与理解
要点
1.UDP网络传输不需要建立连接,即高效率,不可靠,数据传输不超过64KB
2.UDP通过 DatagramSocket和 DatagramPacket进行通行,不在区分具体客户端和服务端
3.DatagramPacket封装了具体地址和信息,DatagramSocket将其进行打包发送或接受
使用细节
1.发送端:
(1)DatagramSocket构造器声明;
(2)创建字节数组用于装包保存数据
(3)DatagramPacket封装数据和地址(IP地址和端口号)用于发送
(4)DatagramSocket.send(packet),打包发送
2.接受端:
(1)DatagramSocket构造器声明需要监听的端口号
(2)创建字节数组用于装包保存数据
(3)DatagramPacket封装数据用于接收
(4)DatagramSocket.receive(packet),打包接收
(4)创建字节数组用于拆包
3:具体代码
DatagramSocket send_socket = new DatagramSocket(9999); // 表示在999端口接收数据
byte[] buf = new byte[1024]; // 装包发送
buf = "在吗?,明天赤果果".getBytes();
DatagramPacket packet = new DatagramPacket(buf,buf.length, InetAddress.getByName("10.21.58.61"),9998);
send_socket.send(packet); // 发送
byte[] receive_buf = new byte[1024]; // 装包接收
DatagramPacket receivet_packet = new DatagramPacket(receive_buf,receive_buf.length);
send_socket.receive(packet);
int length = packet.getLength();
byte[] receive_bu = packet.getData(); // 拆包
System.out.println(new String(receive_bu,0,length)); // 打印
常用的两个方法
1String.getBytes() : 将字符串转换为字节数组
2.new String(byte[ ] arr,0 ,arr.length); : 字符串打印字节数组数据