DatagramSocket 和 DatagramPacket 两个类是 基于UDP 协议进行通信的包装类
实现两个客户端通过 UDP协议通信,使用DatagramSocket 和 DatagramPacket类
有如下几个步骤,分为客户端和服务端
1,客户端:
1),实例化DatagramSocket类(带上指定端口),创建客户端
2),准备数据,数据是以字节数组发送的
3),打包数据,使用 DatagramPacket 类 + 服务器地址+ 端口
4),发送数据
5),关闭连接
public static void main(String[] args) throws IOException {
// 1,创建服务端+端口
DatagramSocket client = new DatagramSocket(614);
// 2,准备数据
String msg = "lcm,I love you!O(∩_∩)Olcmlcm";
byte [] data = msg.getBytes();
// 3,打包(发送的地点及端口)
DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("127.0.0.1", 1219));
// 4,发送资源
client.send(packet);
// 5,关闭资源
client.close();
}
2,服务端
1),实例化DatagramSocket类+指定端口
2),准备接收的字节数组,封装 DatagramPacket
3),接受数据
4),解析数据
5),关闭连接
public static void main(String[] args) throws IOException {
// 1,创建服务端+端口
DatagramSocket server = new DatagramSocket(1219);
// 2,准备接收容器
byte[] container = new byte[1024];
// 3,封装成包 new DatagramPacket(byte[] b,int length)
DatagramPacket packet = new DatagramPacket(container, container.length);
// 4,接收数据,使用 DatagramSocket的实例的 receive( DatagramPacket ) 方法进行接收
server.receive(packet);
// 5,分析数据
byte[] data = packet.getData();
int length = packet.getLength();
String msg = new String(data, 0, length);
System.out.println(msg);
server.close();
}