这是以后的问题我以前的一个: Java UDP send - receive packet one by one如何获取实际的数据包大小'的byte []`数组中的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");
这里,将实际的数据包大小是说,300bytes,但buffer1
被分配1024字节,而对我来说,这是什么毛病来处理buffer1
。
如何从这里获取实际包大小byte[]
数组?
更重要的是,为什么我们需要预先分配缓冲区大小来接收Java中的UDP数据包? (node.js不这样做)
有什么办法不预先分配缓冲区大小,并直接接收UDP数据包,因为它是?
谢谢你的想法。
好的,谢谢EJP,我在这里发布我自己的答案。它似乎正在正确地查看我的日志。 –