标签: libtorrent-rasterbar

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

我试图使用python libtorrent每天获取大约10k +种子的元数据.

这是当前的代码流

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

到目前为止我试过这个.

#!/usr/bin/env python
# this file will run as client or daemon and fetch torrent meta data i.e. torrent files from magnet uri

import libtorrent as lt # libtorrent library
import tempfile # for settings parameters while fetching metadata as temp dir
import sys #getting arguiments from shell or exit script
from time import sleep #sleep
import shutil # removing directory tree from temp directory 
import os.path # for …
Run Code Online (Sandbox Code Playgroud)

python bittorrent magnet-uri libtorrent libtorrent-rasterbar

7
推荐指数
1
解决办法
1080
查看次数

提升Asio tcp :: acceptor访问冲突异常

我试图创建一个tcp::acceptorlibtorrent::session并排,但是从等待输入时,我得到一个访问冲突异常std::cin.访问冲突发生在Boost IOCP实现中,如堆栈跟踪所示.

  • Windows 8.1
  • MSVC 12.0(Visual Studio 2013)
  • 提升v1.57.0
  • libtorrent-rasterbar v1.0.3

一个让我重现问题的最小例子,

#include <boost/asio.hpp>
#include <libtorrent/session.hpp>

int main(int argc, char *argv[])
{
    boost::asio::io_service io_service;
    boost::asio::ip::tcp::acceptor acceptor(io_service);

    libtorrent::session s;

    std::string line;
    std::getline(std::cin, line); // <----- trigger

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪是

lt_test.exe!boost::asio::detail::win_iocp_socket_service_base::do_open(boost::asio::detail::win_iocp_socket_service_base::base_implementation_type & impl, int family, int type, int protocol, boost::system::error_code & ec) Line 300   C++
lt_test.exe!boost::asio::detail::win_iocp_socket_service<boost::asio::ip::tcp>::open(boost::asio::detail::win_iocp_socket_service<boost::asio::ip::tcp>::implementation_type & impl, const boost::asio::ip::tcp & protocol, boost::system::error_code & ec) Line 192  C++
lt_test.exe!boost::asio::socket_acceptor_service<boost::asio::ip::tcp>::open(boost::asio::detail::win_iocp_socket_service<boost::asio::ip::tcp>::implementation_type & impl, const boost::asio::ip::tcp & protocol, …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-asio libtorrent-rasterbar

6
推荐指数
1
解决办法
554
查看次数

libtorrent-rasterbar和Visual Studio 2013

我正在尝试使用带有VS2013(C++)的libtorrent-rasterbar构建一个简单的代码(examples/simple_client.cpp),但是我收到以下链接器错误:

error LNK2019: unresolved external symbol "void __cdecl libtorrent::rel_performancetimer_pools_nolog_resolvecountries_deprecated_nodht_ext_(void)" (?rel_performancetimer_pools_nolog_resolvecountries_deprecated_nodht_ext_@libtorrent@@YAXXZ) referenced in function "public: __thiscall libtorrent::session::session(struct libtorrent::fingerprint const &,int,unsigned int)" (??0session@libtorrent@@QAE@ABUfingerprint@1@HI@Z)
Run Code Online (Sandbox Code Playgroud)

我使用以下命令编译libtorrent:bjam toolset=msvc-12.0 link=static variant=debug boost=source并链接VS中的所有内容:

  • libboost_system-VC120-MT-GD-1_55.lib
  • libboost_date_time-VC120-MT-GD-1_55.lib
  • libtorrent.lib

附加信息:libtorrent-rasterbar-0.16.15; boost_1_55_0; Windows 8.1 64位.

关于这里出了什么问题的任何想法?

谢谢.

c++ boost visual-c++ libtorrent libtorrent-rasterbar

4
推荐指数
1
解决办法
1747
查看次数