我发送给同行的请求如下:
b'\x00\x00\x00\r\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01'
我得到的回应是:
b'\x00\x00\x00\x00\x00\x00\x00\x00R'
非官方 BitTorrent 规范指定片段消息应遵循以下内容:
件:我正在处理这样的消息:块消息是可变长度的,其中X是块的长度。有效负载包含以下信息:
index:指定从零开始的片段索引的整数 begin:指定片段内从零开始的字节偏移量的整数 block:数据块,是索引指定的块的子集。
elif message_id == 7:
if len(payload) >= 9:
piece_index, begin = struct.unpack('!II', payload[:8])
block = payload[8:]
if piece_index not in self.received_pieces:
self.received_pieces[piece_index] = {}
self.received_pieces[piece_index][begin] = block
请告诉我您是否需要更多信息我尝试过对消息的处理方式进行挑剔,但我完全没有收到数据,所以我真的无能为力。
Bittorrent 流也不是同步 RPC 机制,因此您不能保证您收到的下一个消息是对上一条消息的回复。相反,您必须跟踪您请求的内容,同时对方可能会发送其他内容,并且仅在稍后回复几条消息。