java 使用DatagramSocket类来发送和接收UDP数据包。
时间: 2024-06-15 22:08:58 浏览: 103
Java中使用DatagramSocket类来发送和接收UDP数据包。DatagramSocket类是Java提供的用于实现UDP协议的套接字类。
要发送UDP数据包,可以按照以下步骤进行操作:
1. 创建一个DatagramSocket对象,可以指定端口号或者让系统自动分配一个可用的端口号。
2. 创建一个DatagramPacket对象,指定要发送的数据、目标主机的IP地址和端口号。
3. 调用DatagramSocket的send()方法,将数据包发送到目标主机。
要接收UDP数据包,可以按照以下步骤进行操作:
1. 创建一个DatagramSocket对象,可以指定端口号或者让系统自动分配一个可用的端口号。
2. 创建一个字节数组,用于存储接收到的数据。
3. 创建一个DatagramPacket对象,指定接收数据的字节数组和数组长度。
4. 调用DatagramSocket的receive()方法,接收来自其他主机发送的数据包。
以下是一个简单的示例代码:
// 发送UDP数据包
DatagramSocket socket = new DatagramSocket();
String message = "Hello, UDP!";
InetAddress address = InetAddress.getByName("目标主机IP地址");
int port = 12345;
byte[] sendData = message.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, address, port);
socket.send(sendPacket);
// 接收UDP数据包
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket);
String receivedMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Received message: " + receivedMessage);
阅读全文