如何测量刚刚收到的UDP数据包大小



我正在学习UDP编程。如何获得从UDP服务器接收的数据包的大小?

byte[] buffer = new byte[1000];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
datagramSocket.receive(packet);
buffer = packet.getData();

在上面的代码片段中,我将缓冲区大小声明为1000字节。所以很明显,我不能通过简单地调用buffer.length来获得大小,它在任何情况下都会返回1000。

有人能告诉我有没有办法吗?

您可以在DatagramPacket中使用getLength()方法,例如packet.getLength()来获取数据包大小。

最新更新