我试图实现一个能够与主线kademlia协议进行通信的程序 我在这里遵循了规范http://www.bittorrent.org/beps/bep_0005.html
当我对互联网的随机节点执行get_peer查询时 它假设返回一个写令牌,但无论我尝试多少个节点 写令牌丢失
我发送的示例数据:
D1:AD2:ID20:-WP0001-4145477439689:info_hash20:-WP0000-5555555555556:noseedi1ee1:Q8:get_peer1:V4:WPvA1:T2:AA1:Y1:QE
我试过的节点: 通过使用find_node查询获得大量随机节点,bootstrap节点是router.bittorrent.com
我确实获得了一个返回的节点列表,除了令牌丢失外,一切正常
我必须遵守任何规则才能获得令牌吗?
答案 0 :(得分:0)
get_peers
中的 s 缺失。
您的样本:
d1:ad2:id20:-WP0001-4145477439689:info_hash20:-WP0000-5555555555556:noseedi1ee1:q
的 8:get_peer 强> 1:v4:WPvA1:t2:aa1:y1:qe
应该是:
d1:ad2:id20:-WP0001-4145477439689:info_hash20:-WP0000-5555555555556:noseedi1ee1:q
的 9:get_peers 强> 1:v4:WPvA1:t2:aa1:y1:qe