问题标签 [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 回答
1273 浏览

python - 在 Python 中使用 Libtorrent 下载多个 torrent 文件

我正在尝试编写一个 torrent 应用程序,它可以接收磁铁链接列表,然后将它们一起下载。我一直在尝试阅读和理解Libtorrent的文档,但我无法判断我尝试的方法是否有效。我设法能够将 SOCKS5 代理应用到 Libtorrent 会话并使用以下代码下载单个磁力链接:

这很棒,而且所有这些都可以通过单个链接自行运行。我想做的是这样的:

我不确定这是否在正确的轨道上,但一些指针会有所帮助。

更新:这就是我现在拥有的,在我的情况下它工作正常

0 投票
1 回答
38 浏览

c++ - libtorrent file_storage 无效:分配错误

我正在关注libtorrent-maketorrent-example

我正在使用以下参数运行客户端

file_storage使用默认构造函数声明如下

程序在尝试添加文件时抛出异常

我猜这个问题可能是因为 file_storage 无效,因为我在调用 lt::add_files 之前添加的以下语句返回false即 0

我得到了 lt::add_files 的错误分配异常

完整路径是C:\workspace\Project1%20POC\client\base_text.torrent

我该如何解决这个问题?难道我做错了什么?

0 投票
1 回答
156 浏览

c++ - Libtorrent:Download-Connection could not be made because the target machine主动拒绝它

我在一个带有参数的小文本文件上创建了 torrent 文件。 client.exe abc.txt -o abc.torrent -t http://MyIpv4:9090/ -l创建 torrent 的代码与libtorrent-tutorial-make_torrent中的代码相同,然后在启动客户端时我设置lt::settings_pack::broadcast_lsd为 true,如下所示

下载种子代码:

此代码适用于公共种子。我通过从其中一个 torrent 网站下载有效 torrent 文件中的文件对其进行了测试。

在另一台机器上的同一个 wifi 网络上,我试图通过传递磁铁 URI 来下载这个种子,如下所示

下载日志

我从这个问题中了解到,在 LAN 中我可能必须打开本地对等发现选项并启用 NAT-PMP/UPnP

我尝试过的事情:

  • 设置lt::settings_pack::broadcast_lsdtrue
  • 在控制面板 -> 网络和共享 -> 高级设置 -> 公用文件夹共享中启用 windows 网络发现 = 是
  • 完全关闭客户端计算机上的防火墙
  • 为端口 9090 添加了 TCP 和 UDP 的入站规则
  • 如果使用 udp 而不是 http 创建 torrent:在从其他机器运行下载代码时, An address incompatible with the requested protocol was used. 我无法处理路由器设置,因为我无权访问它。

我能够在同一网络上运行 2 个对等点并发送接收消息而不会出现此问题。

有没有办法克服这个错误?

0 投票
1 回答
378 浏览

bittorrent - libtorrent 在会话中禁用 dht 和 lsd

我们正在创建这样的 libtorrent 会话:

与 ssl_listen 类似,我们希望在 libtorrent 会话中禁用 DHT、LSD、UPnP、NAT-PMP。有什么办法吗?

同样在 libtorrent 手册页中提到:

如何在一次调用中进行批量设置更新?

基本上我们想要更改这些默认设置字段:enable_lsd, enable_dht, enable_upnp, enable_natpmp然后使用这些设置创建一个会话对象。

0 投票
1 回答
81 浏览

bittorrent - 有没有办法利用 Bittorrent DHT 处理小数据

我有一个需要同步池数据集的一系列主要连接的节点的情况。它们是 200-1500K 的文件,根据环境的不同,在 30 分钟到 6 小时之间不定期更新。现在节点的数量有数百个,但理想情况下,它会增长。

目前,我正在使用 libtorrent 在节点集群之间保持一系列文件同步。我每隔几个小时做一次转储,并根据之前的种子创建一个新的 torrent。然后我使用 BEP 38 的策略关联它。然后将 infohash 发布到 DHT 中的一个已知条目,其他节点轮询以获取它。

我想知道是否有更好的方法来做到这一点。我喜欢 BitTorrent 的原因最初是为了固件更新。我不需要担心连接性不够好的节点,并且使用 DHT,它可以很好地自组装。然后扩展以同步这些池文件。

我目前正在尝试查看是否可以进行扩展,以允许我让每个节点announce_peer为每个新记录执行一次。那么理论上相关方将能够倾听。这带来了两个大问题:

  1. 如何让感兴趣的节点知道有新数据?
  2. 如果我有 1000 个或更多节点每隔几分钟添加新的信息散列,这会对 DHT 造成什么影响?

我承认这感觉就像我试图将一个方形钉子打入一个圆孔,但我真的很想一次保持尽可能少的协议。

0 投票
1 回答
302 浏览

python - 通过频繁向 DHT 发布消息来快速获得同行?

我是 BitTorrent 协议的新手,所以请保持温和。

据我了解,种子文件应该每 15 分钟向 DHT 发布一次,默认情况下,这是libtorrent所做的。但是,如果在第一次宣布之后我没有得到任何同行怎么办?我是否必须等待 15 分钟才能让 libtorrent 获得下一次机会来获取同行列表?

为了避免等待,我将 libtorrent 配置为每 3 秒向 DHT 发布一次消息:

通过这种方法,我在 10 秒内成功获取了 peer 列表。这是快速获得同行的正确方法吗?如果没有,从 DHT 快速获得对等点的正确方法是什么?这是虐待吗?

0 投票
2 回答
224 浏览

c++ - 为树莓派 3 模型 B 交叉编译 libtorrent

我一直在尝试为使用boost build进行编译的树莓派交叉编译jlibtorrent。我正在使用官方提供的交叉编译器,其中包含以下内容:config.jam

我基本上复制了 linux-x86 的现有配置并替换了编译器,但出现以下编译错误:

我唯一的猜测是交叉编译器的版本(4.9.3)与libtorrent不兼容,因为我在linux-32-config.jam中看到它使用g++-5。还有什么我想念的吗?您可以在我的 github 存储库中找到修改后的存储库。我swig/build-linux-armv7.sh用于建筑。

0 投票
1 回答
293 浏览

python - 如何使用 libtorrent 将 set_sequential_download() 添加到此代码中?

如何添加set_sequential_download(True)到下面的 python 代码?

我尝试了几种添加句柄的方法;但它不起作用。sequential_download 也被称为 torrent 标志和 torrent 句柄。我浏览了 Libtorrent 网站上的文档,但不清楚,而且我对 python 的经验非常有限。

0 投票
0 回答
47 浏览

visual-studio-2017 - 卡在 Libtorrent

我正在尝试使用 libtorrent 运行最简单的应用程序。我在 Windows 上使用带有 CLion 的 Visual Studio 编译器

但我有下一个错误

在此处输入图像描述

0 投票
0 回答
86 浏览

ssl - SSL torrent 通过磁力链接

我正在使用 SSL 种子设置我的系统。如果我的两个客户都有 .torrent,即使没有跟踪器,它也能很好地工作,这要归功于本地服务发现。所以现在我的下一步是为没有种子的客户端使用磁力链接。我的两个客户端都只监听 SSL 的端口(当监听超过 1 个端口时,他们实际上会感到困惑......)。但在这种设置中,他们似乎无法进行交流。这是意料之中的,因为 ssl 套接字应该只接受来自具有证书的对等方的连接......

但是,我的设置需要什么才能让客户端下载 SSL 种子元数据(种子文件)?

任何帮助是极大的赞赏。这是我的实验代码

所以我开始我的播种客户

...和我需要的客户

这就像一个魅力。并不是说 cert_path 是我的客户端证书的路径,其中主题替代名称设置为 * 和我使用 openssl 生成的 sh 参数文件。

但是,如果我这样做:

这卡在“dl 元数据”上。

当然,用非 SSL 种子尝试同样的事情就像一种魅力。

-----经过更多思考后编辑-----

因为这很有意义:能够加入 swarm 意味着需要使用正确的证书并且知道底层的 torrent 是 SSL 的,所以我继续在 1 警报的管理中更改了一些代码

这很丑陋(使用私有 api),但它似乎确实有效。我会尝试找到更好的解决方案。

所以如果我错过了什么,请告诉我。谢谢。