我试图找到UDP数据包中前2个字节的值,该值与剩余有效负载的长度相对应.鉴于我知道前两个字节,在Java中找到这个值的最佳方法是什么?请问java.nio.ByteBuffer
有什么用处?
谢谢
我经常使用这样的东西:
static public int buildShort(byte high, byte low) { return ((0xFF & (int) high) * 256) + ((0xFF & (int) low)); }
然后你拿前两个字节DatagramPacket
:
int length = buildShort(packet.getData()[0], packet.getData()[1]);
请注意,我使用长度作为int
因为short
数据类型(因为每个人)都是用Java签名的,所以你需要更大的空间.