Networking 如何连接到DHT引导节点?

Networking 如何连接到DHT引导节点?,networking,bittorrent,dht,Networking,Bittorrent,Dht,我正在制作一个torrent客户端,我需要将DHT连接包含到我的程序中。我发现了一些静态DHT节点,但我无法连接到它们中的任何一个。我正在用我的端口和torrent信息散列向这个地址发送一个Ping查询,但没有收到任何响应 router.bittorrent.com:6881 router.utorrent.com:6881 dht.transmissionbt.com:6881 dht.aelitis.com 我正在用我的端口和torrent信息散列向这个地址发送一个Ping查询 那没有任何

我正在制作一个torrent客户端,我需要将DHT连接包含到我的程序中。我发现了一些静态DHT节点,但我无法连接到它们中的任何一个。我正在用我的端口和torrent信息散列向这个地址发送一个Ping查询,但没有收到任何响应

router.bittorrent.com:6881
router.utorrent.com:6881
dht.transmissionbt.com:6881
dht.aelitis.com
我正在用我的端口和torrent信息散列向这个地址发送一个Ping查询

那没有任何意义。DHT ping请求不包含任何信息哈希

但我没有得到任何回应

router.bittorrent.com:6881
router.utorrent.com:6881
dht.transmissionbt.com:6881
dht.aelitis.com
您的数据包可能格式不正确,因此节点根本不响应您的请求

如果你想排除网络问题,我建议在你的网络中运行一个支持DHT的bittorrent客户端,只需ping一下即可。 从概念上讲,引导节点与常规节点没有什么不同,只是它们的主机名和端口是已知的和固定的,因此您可以简单地对您控制的节点进行测试

dht.aelitis.com


据我所知,这是针对Vuze DHT的,它有一个单独的协议。

对不起,我的问题不正确。我尝试使用udp协议连接到套接字,然后用我自己的id发送Ping查询。我随机创建这个id。它是一个20字节的字符串。我需要用big endian制作吗?如果你问endian,你似乎不理解bencoding,因为这是endian不可知论。无论如何,您没有提供足够的信息进行进一步的诊断。节点ID存储为20字节的字符串,并且是big-endian。还要注意的是,会更新节点ID的生成方式。bencoding实际上没有endianness,因为所有内容都是基于字节的,而不是基于单词的。bencoding没有endianness是正确的。但是,当您将160位节点ID存储为字节字符串时,它将具有endianness。当您传输该(bencoded)字节字符串时,发送方和接收方都需要使用相同的endianness。