我正在用 C++ 编写一个 bittorrent 客户端,它从包含几个 6 字节字符串的跟踪器(服务器)接收消息。前 4 个字节表示对等方的 IP 地址,接下来的 2 个字节表示对等方正在侦听的端口号。
我已经研究出如何将 ip 字节转换为人类可读的 ip 地址,但我正在努力将表示端口号的两个字节转换为 int (或类似的东西)
到目前为止,这是我的努力:
BYTE portbinary[2];
unsigned short peerport;
//trackers[i]->peersBinary[j * 6 + 4] is the first byte
portbinary[0] = trackers[i]->peersBinary[j * 6 + 4];
//trackers[i]->peersBinary[j * 6 + 5] is the second byte
portbinary[1] = trackers[i]->peersBinary[j * 6 + 5];
peerport = *portbinary;
经过检查 peerport 似乎只包含第一个字节的整数表示,我该如何解决这个问题?
提前致谢 :)