【发布时间】:2015-03-05 17:55:23
【问题描述】:
我编写 BitTorrent 客户端,现在我正在处理位域消息。 位域消息如下所示:
<len=0001+X><id=5><bitfield>
问题是 len 总是相同的,而消息的实际长度总是不同的。这是我的python代码:
message = self.recv(4096)
print(len(message)) #prints different numbers every time
current_msg_len = struct.unpack('!I', message[:4])[0]
print(current_msg_len) #always prints the same number
我正在使用 TCP,我知道我可以收到不完整的消息,但是在握手和位域之后没有任何消息进入。 接收到的消息示例:
[0, 0, 0, 95, 5, 255, 255, 255, 255, 254, 254, 255, 239, 255, 255, 255, 255, 255, 255, 255, 255, 247, 253, 255]
【问题讨论】:
标签: python network-programming bittorrent