2

我想在我的 Scala 应用程序中包含一些 bittorrent 功能。如果可以的话,我想专门使用磁力链接,因为它们易于使用。问题是我想使用像ttorrent这样的预建库。但是,我发现这些库不使用磁力链接,它们使用元信息或种子文件本身。

所以我认为我的第一步是获取磁力链接并自己构建一个元信息对象。我非常了解磁力链接的构成,并且可以将其解析为参数。我只是不太确定如何使用磁铁参数。我不知道该怎么处理他们。

这只是我在 PB 上找到的一个测试磁铁链接:

magnet:?xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba&dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80

解析后我得到:

xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba
dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE
tr=udp://tracker.openbittorrent.com:80
tr=udp://tracker.publicbt.com:80
tr=udp://tracker.istole.it:6969
tr=udp://tracker.ccc.de:80

很简单。现在我没有过多地使用哈希,但我很确定我不能直接从中获取任何信息。我唯一的猜测是我可能必须联系其中一个跟踪器来获取元信息。不过我不确定。

[fyi] 洪流将仅用于合法共享,在应用程序用户之间共享应用程序数据和应用程序文件。

4

1 回答 1

1

根据客户需要的信息哈希检索元数据

  1. 能够找到对等点,在这种情况下通过 UDP 跟踪器 (BEP 15) *
  2. 支持扩展协议 (BEP 10)
  3. 通过扩展协议支持元数据交换 (BEP 9)

因为根据它的自述文件,ttorrent 没有实现 BEP 9 和 10,它不能使用磁力链接。

[*] HTTP 跟踪器和 DHT 是其他来源,需要它们自己的协议,但与本示例无关

于 2014-11-23T05:52:39.200 回答