BitSharp / MonoTorrent 扼杀所有同行

Posted

技术标签:

【中文标题】BitSharp / MonoTorrent 扼杀所有同行【英文标题】:BitSharp / MonoTorrent chokes all peers 【发布时间】:2009-05-15 14:37:34 【问题描述】:

我正在编写一个库来通过 bittorrent 下载文件。不会有用户干预。用户将幸福地不知道文件甚至正在被下载。我选择了 BitTorrent 作为传输文件的首选方法,并围绕 MonoTorrent 库构建了应用程序。在我的服务器上,我运行 bttrack python 脚本进行跟踪,并运行 rTorrent 进行播种。

我已成功将 1078 个文件下载到客户端计算机上。然而,有 2 个文件分别没有超过 8% 和 11%。当我使用 uTorrent、BitTorrent 甚至 MonoTorrent GUI 时,文件下载没有任何问题。

除了我自己的以外,所有客户端都可以正常下载。我使用哪个客户端播种并不重要。文件大小或文件名都没有什么异常:

72 359 940b - a05276e5193644d48aaf711242b40a30.ssz

74 448 896b - e5ba856c6115453091d8b82ae53749bd.ssz

第一个文件在我的客户端下载到 7.58% (5.30MB)。第二个文件为 11.42% (8.30MB)。

在 rTorrent(从 rTorrent 播种时)屏幕上,它最初显示状态为 r/ci/un(远程发起的连接/远程客户端阻塞本地客户端,有兴趣下载/本地客户端未阻塞远程客户端,对上传不感兴趣)

当种子到达死锁时,状态变为r/cn/cn(远程发起连接/远程阻塞本地,对下载不感兴趣/本地客户端阻塞远程,对上传不感兴趣)

传输停止,无论我做了什么,我都无法让它继续下去。

我使用的是 MonoTorrent 版本 0.70.0.0,SVN 修订版 134304。

由于客户端都使用昂贵的 GSM 连接,我将种子设置为 0 个上传槽。但即使在测试中,为上传分配插槽也不能解决问题。

我怎样才能让这些客户成为朋友,而不再互相哽咽?

编辑: 我还尝试了 monotorrent svn 中的示例客户端。它也只下载上面提到的文件。基于旧版 MonoTorrent(版本 0.2.0.0)构建的 MonoTorrentGUI 会下载文件,但即使我尝试使用该二进制文件,它也不会通过我的应用程序下载。

【问题讨论】:

【参考方案1】:

这里的问题原来是 monotorrent 库中的一个错误。它已在此期间修复。作者的论坛上有一个帖子有详细说明。

http://monotorrent.21.forumer.com/viewtopic.php?t=325&highlight=

感谢您修复这个艾伦 :)

【讨论】:

【参考方案2】:

您能否更明确地说明到底发生了什么。哪些客户端正在播种,哪些正在下载,以及哪种组合导致这两个文件不可下载。 是哪种组合起作用?

即rtorrent 播种、monotorrent/utorrent 下载 - 失败

monotorrent 播种,rtorrent/monotorrent/utorrent 下载 - 作品

【讨论】:

另外,这两个特定文件有什么特别之处吗?它们的长度为零吗?它们的大小是 2 的精确倍数吗?文件名中可能有特殊字符?

以上是关于BitSharp / MonoTorrent 扼杀所有同行的主要内容,如果未能解决你的问题,请参考以下文章

Monotorrent 传输文件

MonoTorrent - 指向 Torrent 文件的磁力链​​接

使用 monotorrent 创建 torrent

使用 monotorrent c# 创建 torrent

写入时的 MonoTorrent 事件

使用 Monotorrent 在 VB.NET 中加载 Torrent