我正在制作一个洪流客户端。我解码 torrent 文件并将此请求发送到跟踪器:
http://tracker.mininova.org/announce?uploaded=0&downloaded=0&compact=0&event=started&peer_id=12345678987654321234&port=6881&info_hash=%18%28n%23K%ECt%B7%93S%C5%F1-%F3%1C%18k%CEX%A4&left=0
这就是我收到的:
{'min interval': 1800, 'peers': '', 'interval': 1800, 'complete': 37, 'incomplete': 0}
为什么对等体列表是空的?有 37 个同行是播种者,我不应该从他们那里获取一些同行信息吗?
最佳答案
您得到一个空的对等列表的原因是因为跟踪器不会将种子发送给其他种子,并且在请求时没有注册的 leechers。
跟踪器将您注册为种子,因为您在请求字符串中发送了 &left=0
,表明您拥有完整的种子。
相反,假设 torrent 是 200075 字节并且客户端还没有下载任何东西,
它应该添加 &left=200075
并且公告将是:
http://tracker.mininova.org/announce?uploaded=0&downloaded=0&compact=0&event=started&peer_id=12345678987654321234&port=6881&info_hash=%18%28n%23K%ECt%B7%93S%C5%F1-%F3%1C%18k%CEX%A4&left=200075
并且不会有任何答案,因为跟踪器早已死了。
参见:https://wiki.theory.org/index.php/BitTorrent_Tracker_Protocol#Basic_Tracker_Announce_Request
关于bittorrent - 如何从 torrent tracker 响应中获取对等列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13750775/