java怎么接收udp报文

46次阅读
没有评论

共计 1165 个字符,预计需要花费 3 分钟才能阅读完成。

要接收 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 报文。如果需要连续接收多个报文,可以将接收报文的代码放在一个循环中。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计1165字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)