要接收UDP报文,可以使用Java的DatagramSocket类。
首先,创建一个DatagramSocket对象来监听指定的UDP端口。例如,要监听端口号为9999的UDP报文,可以使用以下代码:
int port = 9999; DatagramSocket socket = new DatagramSocket(port);
然后,创建一个字节数组来存储接收到的数据。可以根据实际情况调整数组的大小。
byte[] buffer = new byte[1024];
接下来,创建一个DatagramPacket对象用于接收数据。在构造方法中,传入之前创建的字节数组和数组的长度。
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
接着,使用DatagramSocket的receive()方法接收UDP报文。此方法会阻塞,直到接收到报文为止。
socket.receive(packet);
最后,可以通过DatagramPacket的getData()方法获取接收到的数据,并根据实际情况进行处理。
byte[] receivedData = https://www.yisu.com/ask/packet.getData();>完整的代码如下:
import java.net.DatagramPacket; import java.net.DatagramSocket; public class UDPReceiver { public static void main(String[] args) { try { int port = 9999; DatagramSocket socket = new DatagramSocket(port); byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); byte[] receivedData = https://www.yisu.com/ask/packet.getData();"Received message: " + message); socket.close(); } catch (Exception e) { e.printStackTrace(); } } }注意:以上代码只能接收一个UDP报文。如果需要连续接收多个报文,可以将接收报文的代码放在一个循环中。