如何使用对等方从跟踪器响应中读取正确的端口(二进制模型)

时间:2019-07-14 00:10:41

标签: java networking byte bittorrent

我试图读取对等方跟踪器响应的二进制模型的响应,我设法读取了IP,但是端口出了问题。

还有其他有关此问题的文章,但是它们都不在java中没有不带符号的short的地方。因此,我从数据读取的端口非常大或为负。

我已经尝试使用char而不是short,但这也没有用。

目前我如何阅读它的一个例子是

ByteBuffer wrap = ByteBuffer.wrap(bytes);
wrap.order(ByteOrder.BIG_ENDIAN);
return wrap.getInt();

其中bytes是大小为2的byte []数组,直接来自跟踪器。

1 个答案:

答案 0 :(得分:0)

从ByteBuffer中获取两个字节作为数字的最简单方法是getShort方法。要重新解释其签名,请使用Short.toUnsignedInt