在 libtorrent 示例中使用 maketorrent

Posted

技术标签:

【中文标题】在 libtorrent 示例中使用 maketorrent【英文标题】:Using maketorrent in libtorrent examples 【发布时间】:2015-05-14 05:24:39 【问题描述】:

所以我正在尝试构建一个使用 libtorrent 的应用程序。但是,在开始之前,我想确保我已经正确编译了 lib,并且我有一个可运行的测试环境。 我目前正在使用 opentracker 运行 VM,并尝试使用 libtorrent 中的示例客户端进行连接。 首先,我首先使用 libtorrent 创建一个 .torrent 文件(我目前没有坐在可以使用 libtorrent 的计算机前,所以我可能记错了确切的命令):

maketorrent.exe  dummy.txt -t "http://10.XXX.XXX.XXX/announce"

这给了我一个名为 a.torrent 的 .torrent 文件。打开文件一切正常,编码正确,并且发布地址在那里。 接下来我尝试将它添加到示例客户端,希望它开始播种:

client_test.exe a.torrent

一切正常,但没有找到跟踪器。然后,如果我按 t 显示跟踪器信息,我会看到一个错误(可能不是确切的措辞):

Alert: null unsupported URL protocol

好的,所以我构建 libtorrent 的方式可能有问题。所以我得到了 Halite 客户端,因为它也应该建立在 libtorret 之上。但是我有同样的问题。 因此,我查看了代码,并找到了生成此错误消息的位置。该代码正在检查我是否使用 HTTP 或 HTTPS 协议提供地址,我就是。那么可能是我无法使用裸 IP 地址还是我做错了什么?

【问题讨论】:

种子文件真的正确吗?测试上传到:torrenteditor.com 好主意。明天我回到办公室时可能会这样做。 【参考方案1】:

我发现了问题。 IP地址或种子本身没有问题。相反,这是缓存的问题。 第一次添加种子时,我使用了 http:\XXX.XXX.XXX.XXX 而不是 http://XXX.XXX.XXX.XXX,但这不起作用。但是,在那之后我对种子文件所做的任何更改都没有坚持。在我删除 .resume 文件夹之前,它总是回退到那个原始文件。

【讨论】:

是的,跟踪器保存在简历文件中。这是为了保留用户添加的跟踪器。 但是如果更新了torrent文件的内容,是不是应该不更新列表呢?而不是仅仅忽略更新? 也许您的客户端已配置为合并它们。它由flag_merge_resume_trackers控制,见libtorrent.org/reference-Session.html#add_torrent_params 啊哈。我会在星期一调查一下。谢谢。

以上是关于在 libtorrent 示例中使用 maketorrent的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python-libtorrent 下载特定文件

libtorrent 内置跟踪器 [关闭]

在 MSVS 2013 中使用 libtorrent

如何在python中使用libtorrent的udp协议跟踪器协议

libtorrent 无法使用 VS2005 构建

如何在 libtorrent 中应用代理?