如何在 Java UDP 中获取实际的数据包大小 'byte[]' 数组
2022-09-04 03:53:03
这是我上一个问题的后续问题:Java UDP发送 - 逐个接收数据包
正如我在那里指出的那样,基本上,我希望通过UDP逐个接收数据包。
下面是一个示例代码:
ds = new DatagramSocket(localPort);
byte[] buffer1 = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer1, buffer1.length);
ds.receive(packet);
Log.d("UDP-receiver", packet.getLength()
+ " bytes of the actual packet received");
在这里,实际的数据包大小是300字节,但被分配为1024字节,对我来说,处理起来有问题。buffer1
buffer1
如何从这里获取实际的数据包大小数组?byte[]
而且,更根本的是,为什么我们需要预先分配缓冲区大小以接收Java中的UDP数据包?( 节点.js不这样做 )
有没有办法不预先分配缓冲区大小并直接接收UDP数据包?
感谢您的想法。