问题标签 [libtorrent-rasterbar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
683 浏览

python - python libtorrent save_state

我有个问题。我不是 C/C++ 程序员,libtorrent 文档对我来说并不是很清楚。没有像 libtorrent 的 python 文档那样可以找到的文档。

此刻,我尝试在 stackoverflow 中搜索代码示例,以了解如何将 save_state 和 load_state 用于会话。

谁能给我一个例子或解释我如何保存会话状态并稍后加载?

目标是在进程重新启动时恢复所有种子。

更新 当在 torrent 句柄上使用 save_state_resume() 时它也没有返回?我发现执行“pydoc libtorrent > libtorrentDoc.txt”给了我一个有用的文档来浏览和搜索。此时我将磁铁重新添加到会话中并使用上面的代码。

也许有人有更有效的方法?

0 投票
1 回答
624 浏览

c++ - 静态链接 Libtorrent 与 Visual Studio

我正在尝试将 Libtorrent 与 Visual Studio 2013 静态链接,但在构建 Libtorrent 然后编译我的项目后,我不断收到这个错误:

当我静态构建时,我没有libboost_system-vc120-mt-1_55.lib而是有libboost_system-vc120-mt-s-1_55.lib。我使用以下参数构建了提升:

和 Libtorrent 与这些:

当构建的 Libtorrent 认为它是共享的而不是静态的时,我缺少什么?

0 投票
1 回答
6703 浏览

python - Windows下安装libtorrent

如果有人可以帮助我或给我关于如何在 Windows 下安装libtorrent的说明(最好是详细的)。此外,是否可以通过将它需要的所有库和文件包含在同一文件夹中来使其可移植。先感谢您!

0 投票
0 回答
393 浏览

android - libtorrent-rasterbar.so - 文件非常大(60mb+)

我已经使用 libtorrent-rasterbar 源 (github) 为 Android (arm) 编译了 Libtorrent-rasterbar,但遇到了一些有问题的结果。下面我列出了我在编译之前采取的步骤:

在为 arm 设置独立工具链后,我将 openssl 库移动到工具链库文件夹中,并将标头移动到工具链包含文件夹等中。我也使用 boost-android 库进行了此操作。接下来我导出了我的环境变量,如下所示:

最后,我使用以下配置:

一切都编译得很好,但是生成的共享库比它应该的要大得多。65mb。我尝试更改我的 CPPFLAGS 以包含 -O2 (优化设置),但它并没有产生大小差异。有没有人将 libtorrent-rasterbar 编译为 android 的共享或静态库?如果是这样,您的最终二进制文件的大小是多少?您采取了哪些步骤?

非常感谢!

更新:我忘了包括我正在编译的机器。开始:

  1. CPU i7 4770k
  2. 内存 16gb 2133mhz
  3. HDD 400GB SSD 分区
  4. 操作系统 OSX 优胜美地
  5. GCC arm-linux-android-gcc (4.9)
  6. NDK r10e
  7. 工具链 arm-linux-androideabi-4.9
  8. GPU nvidia gtx970(无关)..

是的,这是一个hackintosh。

0 投票
1 回答
325 浏览

bittorrent - 当只有 1 个种子节点时,Torrent 添加后不会立即下载

我对 torrent 下载的启动速度有疑问。

所以我有两个基于 libtorrent 的客户端:

客户端 A(deluge) 是唯一播种 torrent 的客户端。它的状态正在播种,但它还没有显示任何对等方。

客户端 B(我正在制作的应用程序)使用

由于某种原因,客户端 B 没有立即开始下载。它等待几分钟,然后客户端 A 的上传速度飙升,然后 torrent 下载到 B。

为什么要等?这与宣布间隔有关吗?如果是这种情况,我该如何减少启动时间,因为我需要立即开始下载。

它不应该只是找到对等方并立即下载文件吗?

我正在使用跟踪器和公共 DHT。

0 投票
1 回答
572 浏览

python - 为 Mavericks 编译 libtorrent Rasterbar

我刚刚从源代码编译并安装了 boost

$pwd

/Downloads/boost_1_58_0

./b2 threading=multi link=static runtime-link=static cxxflags="-stdlib=libstdc++" linkflags="-stdlib=libstdc++"

并在构建完成后收到消息,

Boost C++ 库已成功构建!

应将以下目录添加到编译器包含路径:

应将以下目录添加到链接器库路径:

现在我正在尝试安装 lib torrent 的 python 挂起使用sudo pip install .

我收到错误消息b2: command not found,因为我知道 b2 命令在我构建 boost 的位置,我将 setup.py 更新为特定路径,

但是当我尝试对sudo pip install .lib torrent 进行 python 绑定时,我仍然收到以下消息。

按照第一个答案中提到的步骤后,我尝试运行make,但出现以下错误:

0 投票
0 回答
374 浏览

ios - 如何为模拟器 ios 构建 libtorrent

大家好,对不起我的英语不好。我是 ios 开发的新手,现在我尝试为 iso 构建 libtorrent,首先,我在这个github上使用过 Boost 和 OpenSSL

当阅读 Script Shell build boost. 我有可视化来构建我必须为 iphone 和 iphonesimulator 构建的 libtorrent。接下来我使用 lipo 将两个库合并在一起。但是当在 libtorrent 中使用 ./configure 来构建选项时,我在 libtorrent 的 ./configure 中找不到选项 toolset=darwin、architecture=arm 和 target-os。任何人都可以告诉我,我可以为 libtorrent 配置设置哪些选项和参数

0 投票
1 回答
1783 浏览

python - 为什么 utorrents Magnet to Torrent 文件的获取比我的 python 脚本快?

我正在尝试.torrent使用 python 脚本转换文件中的 torrent 磁铁 url。python 脚本连接dht并等待元数据,然后从中创建种子文件。

例如

上面的脚本需要大约 1 分钟来获取元数据和创建.torrent文件,而utorrent客户端只需要几秒钟,这是为什么呢?

我怎样才能让我的脚本更快?

我想获取大约 1k+ 种子的元数据。

例如磁力链接


更新 :

我在我的脚本中指定了这样的已知 dht 路由器 url。

但它仍然很慢,有时我会遇到错误


更新 :

我编写了这个 scmall 脚本,它从 DB 获取十六进制信息哈希并尝试从 dht 获取元数据,然后在 DB 中插入 torrent 文件。

我已经让它无限期地运行,因为我不知道如何保存状态,所以保持它运行将获得更多的对等点并且获取元数据会更快。

现在我需要按照 Arvid 的建议实施新事物。


更新

我已经设法实施了 Arvid 的建议。以及我在 deluge 支持论坛http://forum.deluge-torrent.org/viewtopic.php?f=7&t=42299&start=10中找到的更多扩展

让它运行一分钟并收到警报


更新 :

经过一些测试看起来像

导致


更新: 我添加了

并得到警报

0 投票
1 回答
1465 浏览

python - 使用 Python libtorrent 创建守护进程以获取 100k+ 种子的元数据

我正在尝试使用 python libtorrent 每天获取大约 10k+ 种子的元数据。

这是当前的代码流

  1. 启动 libtorrent 会话。
  2. 获取我们需要在过去 1 天内上传的元数据的种子总数。
  3. 以块的形式从 DB 中获取 torrent 哈希值
  4. 使用这些哈希创建磁力链接,并通过为每个磁力 URI 创建句柄在会话中添加这些磁力 URI。
  5. 在获取元数据时休眠一秒钟,并继续检查是否找到元数据。
  6. 如果收到元数据,则将其添加到数据库中,否则检查我们是否一直在寻找元数据大约 10 分钟,如果是,则删除句柄,即现在不再查找元数据。
  7. 无限期地做上面。并保存会话状态以备将来使用。

到目前为止,我已经尝试过了。

我试着让上面的脚本在一夜之间运行,发现在隔夜会话中只找到了大约 1200 个 torrent 的元数据。所以我正在寻找提高脚本性能的方法。

我什至尝试解码save_state文件并注意到DHT nodes我连接了 700 多个文件。所以它不像DHT是没有运行,

我打算做的是,keep the handles active在不获取元数据的情况下无限期地在会话中。如果在 10 分钟内没有获取元数据,则不会在 10 分钟后删除句柄,就像我目前正在做的那样。

我对 lib-torrent python 绑定没有几个问题。

  1. 我可以继续运行多少个手柄?运行手柄有限制吗?
  2. 运行 10k+ 或 100k 句柄会减慢我的系统吗?还是吃掉资源?如果是,那么哪些资源?我的意思是内存,网络?
  3. 我在防火墙后面,可能是阻塞的传入端口导致元数据获取速度慢吗?
  4. 可以像 router.bittorrent.com 或任何其他禁止我的 IP 地址的 DHT 服务器发送太多请求吗?
  5. 如果其他同行发现我发出太多请求只是为了获取元数据,他们可以禁止我的 IP 地址吗?
  6. 我可以运行这个脚本的多个实例吗?或者可能是多线程?它会提供更好的性能吗?
  7. 如果使用同一脚本的多个实例,每个脚本将根据我使用的 ip 和端口获得唯一的节点 ID,这是可行的解决方案吗?

有没有更好的方法?为了实现我正在努力的目标?

0 投票
0 回答
224 浏览

c++ - libtorrent中种子和网络种子之间的优先级

每个人。我已经阅读了这篇文章http://www.rasterbar.com/products/libtorrent/manual-ref.html但我找不到如何使用 libtorrent 在种子和网络种子之间设置优先级。我将非常感谢您的回答。