java怎么接收udp报文

   2025-02-15 6640
核心提示:要接收UDP报文,可以使用Java的DatagramSocket类。首先,创建一个DatagramSocket对象来监听指定的UDP端口。例如,要监听端口号为

要接收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 = packet.getData();int length = packet.getLength();String message = new String(receivedData, 0, length);

完整的代码如下:

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 = packet.getData();            int length = packet.getLength();            String message = new String(receivedData, 0, length);                        System.out.println("Received message: " + message);                        socket.close();        } catch (Exception e) {            e.printStackTrace();        }    }}

注意:以上代码只能接收一个UDP报文。如果需要连续接收多个报文,可以将接收报文的代码放在一个循环中。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言