gpt4 book ai didi

java - 将 DHT 和 Torrent Client 拼接在一起

转载 作者:行者123 更新时间:2023-11-29 04:31:24 37 4
gpt4 key购买 nike

我有两个 Java 库。一个连接到 DHT 并可以成功下载 torrent 文件。另一个下载与 torrent 相关的实际数据。

Torrent 客户端库期望在 Torrent 中有一个 announce 或 announce-list 部分,并且不理解“节点”条目。

问题是我如何更改 torrent 客户端代码以理解 torrent 文件的“节点”部分。或者如何根据一组 ip:port DHT 对等地址计算跟踪器 URL?

我可以通过猜测端口号并在其上附加/announce 来猜测 url。但这肯定不对吗?

有人知道这是怎么回事吗?

最佳答案

对于仅 DHT 操作,您不需要公布 URL。如果库本身需要一个,您可以插入一个虚拟 url,格式为 dht://<infohash in hex>很常见,但没关系,因为它不会被使用。

另一方面,DHT 部分不需要 nodes要执行查找,它只需根据 torrent 的 infohash 进行操作。节点可以可选地注入(inject)dht客户端进行引导,例如通过对它们执行 ping 命令,但如果它已经被引导,则不需要这样做。一旦 DHT 客户端完成其 get_peersannounce查找对等列表可以注入(inject)到 torrent 客户端。

由于您正在使用我的图书馆:您可以使用 PeerLookupTask从 DHT 和 AnnounceTask 中读取 torrent peer 列表将您的种子端口添加到列表中。获得的 IP 和端口必须传递给 torrent 客户端。 GetPeers CLI 命令包含如何使用第一部分的示例。还有utility methods应该涵盖常见用例。

关于java - 将 DHT 和 Torrent Client 拼接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690254/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com