UDP的原生就比较容易啦,数据封装好了,只需要装包和拆包就行,上代码!
1.最初接收端代码:
public class Server { // 先充当接收端,后为发送端
public static void main(String[] args) throws IOException {
// 创建DatagramSocket,接收端口为9999
DatagramSocket datagramSocket = new DatagramSocket(9999);
// 接收信息
byte[] buf = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length);
datagramSocket.receive(datagramPacket);
// String s = new String(datagramPacket.getData());
// 拆包
int length = datagramPacket.getLength();
byte[] data = datagramPacket.getData();
String s = new String(data, 0, length);
System.out.println(s);
// 回送信息
byte[] data2 = "互换角色,发送给接收端".getBytes();
DatagramPacket datagramPacket1 =
new DatagramPacket(data2, data2.length, InetAddress.getByName("127.0.0.1"), 9998);
datagramSocket.send(datagramPacket1);
// 闭流
datagramSocket.close();
}
}
2.最初发送端代码:
public class Client { // 先充当发送端,后为接收端
public static void main(String[] args) throws IOException {
// 创建DatagramSocket,接收端口为9998
DatagramSocket datagramSocket = new DatagramSocket(9998);
// 发送信息
byte[] data = "发给接收端".getBytes();
DatagramPacket datagramPacket =
new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9999);
datagramSocket.send(datagramPacket);
// 接收信息
byte[] buf = new byte[1024];
DatagramPacket datagramPacket1 = new DatagramPacket(buf, buf.length);
datagramSocket.receive(datagramPacket1);
// 拆包
int length = datagramPacket1.getLength();
byte[] data1 = datagramPacket1.getData();
String s = new String(data1, 0, length);
System.out.println(s);
// 闭流
datagramSocket.close();
}
}