libtorrent api开发手册

所需积分/C币:38 2018-10-23 09:20:56 767KB PDF
14
收藏 收藏
举报

描述libtorrent最主要的类,涉及类的功能,类方法的详细说明,对基于libtorrent开发的项目有很大帮助。
has metadata o set tracker login trackers replace trackers O add url seedo remove url seed( url seeds o queue position queue position upo queue position down O queue position topo queue position bottom O o use interface o nfo hasho set max uploads( set max connections o o save resume data Talus o get download queue() o get peer info set torrent info o is valido ● Torrent slatus peer into session settings pe settings · proxy settings ip filter o ip filter( add rule () o accesso o export filter o big number bitfield hasher fingerprint UPnp and nat-PMP ○a lapping delete mapping o router model O free functions identify client fingerprint o bdecodeo bencode o o add magnet urio make magnet uriO a.erts o external ip alert listen failed alert portmap error alert portmap alert o file error alert o file renamed alert o file rename failed alert tracker announce alert o tracker error alert o tracker reply alert o dht reply alert o tracker warning alert scrape reply alert o scrape failed alert o url seed alert hash failed alert o peer ban alert o peer error alert o invalid request alert o torrent finished alert o performance alert. o metadata failed alert o metadata received alert o fastresume rejected alert o peer blocked alert o storage moved alert o storage moved failed alert o torrent paused alert o torrent resumed alert o save resume data alert o save resume data failed alert dispatcher exceptions invalid handle duplicate torrent o invalid encoding type error o invalid torrent file storage interface natali o has any file o o read O write o move storage) o verify resume datao o write resume data move slot o Swap SloUS o swap slots hash for slot o o rename ile o release files o delete files · magnet links queuing o downloading seedin fast resume o ile format threads storage allocation o sparse allocation o full allocation o compact allocation tensions o metadata from peers Http seeding filename checks acknowledgments 概述 Libtorrent库的接口由少量几个类组成。最主要的类是 session类,它有 个为所有任务服务的主循环 基本的用法如下 创建一个 session 打开扩展(查看 add extension( 打井DHT,LSD,UPnP, NAT-PMP等(查看 start dht, stop dht(, set dht settings, dht state(, start Isd(, stop lsdo start upnp, stop upnp fA start nalpmp (, stop na Lpmp o) 解析. torrent文件并且把它们加入到 session中(查看 decode(, bencode fl add torrent o) 主循环(查看 session) 査询事务句柄,得到下载进度(查看 torrent handler类) 查询事务,得到下载信息。 在运行时从事务中增加或者删除下载任务 主循环(查看 session) 为任务句柄保存新下载的数据(可以查看 save resume dala()函数) 析构事务对象 每个类和函数在这个手册中被描述到 关于如何创建任务种子文件的描述,但看 make torrent函数 网络原语 在1 utorrent名字空间中有一些宏定义,这些定义从asio名字空间中 选出。它们是: typedef asio: ip: address address typedef asio:: ip: address v4 address v4 typedef asio: ip:: address v6 address v6 using as10∴:1p::tcp; using asio:: ip:: udp 这些在<1 utorrent/ socket.hpp>头文件中描述 这些表述为以下几方面提供简易接口 tcp:: endpoint udp: endpoint 这些端点类型在 libtorren库中被使用.一个端点是一个地址与相关 端口的结合。 关于这些类型的文档,请查看相关asio的文件说明. session 事务类有如下一些概要: class session: public boost: noncopyable session(fingerprint const& print libtorrent: fingerprint T",0,1,0,0) int flags = start default features add default plugins) SesSion int const print std pair<int, int> listen port range char const* listen interface=o nt flags- start default features add default plugins) torrent handle add torrent (add torrent params const& params pause void resume o bool is paused const session proxy abort o enum options t none 0, delete files l }; enum session flags t add default plugins =1 start default features =2 void remove torrent (torrent handle const& h, int options none) torrent handle find torrent(sha hash const& ih) std:: vector<torrent handle> get torrents o const. id set settings(session settings const& settings) void set pe settings(pe settings const& settings void set upload rate limit(int bytes per second) int upload rate limit const void set download rate limit(int bytes per second) int download rate limit const void set max uploads(int limit) void set max connections(int limit void set max half open connections(int limit int max half open connections( const void set peer proxy (proxy settings const& s) void set web seed proxy (proxy settings const& s) void set tracker proxy (proxy settings const& s) proxy settings const& peer proxy o const proxy settings const& web seed proxy()const proxy settings const& tracker proxy( cons t int num uploads( const int num connections const bool load asum db( char cons米⊥ile) bool load country db(char const* file) int as for ip(address const& adr) void load state(entry const& ses state) entry state( const void set ip filter (ip filter const& f) p filter consi& get ip filter cons session status status o const cache status get cache status const bool is listening( const unsigned short listen port( const bool listen on( d: pair<int, int> port range char const* interface=0) std:: auto ptralert> pop alert o alert const* wait for alert(time duration max wait void set alert mask (int m) size t set alert queue size limit(size t queue size limit void add extension(boost:: function< boost::shared ptr<torrent plugin>(torrent*)>ext void start dht o dht o void set dht settings( dht settings const& settings) entry dht stateo const void add dht node(std:: pair<std:: string int> const& node) void add dht router (std: pair<std: string nt> const& node) void start lsdo id stop lsdo upnp米 start upnp() d stop upnp o natpmp f start natpmpo void stop nal 旦它被创建,事务对象将会启动主线程来处理所有的工作。如果没有任 何任务提交给主线程的话,主线程将会空闲 session session (fingerprint const& print libtorrent:: fingerprint(LT, 0, 1,0 int flags start default features add default plugins) session (fingerprint const& print std: pairint, int> listen port range char const listen inter lace =o int flags start default features add default plugins) 如果第一个重载函数中指纹函数被省略了,客户端将获得一个表示库版本的 默认指纹,这个指纹是个将用在同步id中来辨认客户与客户的版本的一个短字 符串,关于指纹的更多细节可以查看 fingerprint类。这个构造函数只是提供 个指纹,但并不为事务打开一个监听端凵,如果想打开端凵,必须调用1 lsten on 函数。第二个构造函数,会提供一个监听端口的范围,监听接口,指纹会自动 监听提供的接口。并于参数的更多细节,可以参考1 isten on(函数 标志参数可以用来启动默认参数(比如upnp&nat-pmp)和默认插件 ( ut metadata, ut pex, smart ban).默认情况下是启动这些。如果不 想它们启动,传0给 flags参数即可 session session的析构将会通知所有的服务器我们的任务己关闭。如果一些服务 器正在下载,它们将会延时。这些操作在事务对象析构完才会操作完。所以,只 有关掉所有接口才析构所有的事务。因为匕需要几秒钟才结束。这个超时时间可 以用 set settings o函数设置。 pause resume is paused vold pause( void resume bool is pauseoconst 除非这些任务能被自动管理机制恢复,停止一个事务与停止事务中的任务 样.恢复时将重新装载这些任务到它们以前停止的状态。因为事务停止时的状态 与任务停止时的状态是分开的。如果事务停止或者任务停止的话,任务将会处于 非活动状态。 abort o session proxy abort o 如果你想异步地析构事务,你能中请一个事务析构代理。如果你不这样做, 当服务器被连接时,事务对象的析构过程将来阻塞.当析构事务时,如果给事务 提供一个代理,析构过程将不会被阻塞,而是关掉事务,代理的析构将会同步此 线程。所以,当调用事务析构函数后,只有等到事务代理的析构函数被调用时, 事务才会真正开始析构。事务析构代理不会对事务作任何操作(因为事务被关闭 时,事务上不允许有任何操作).咋一合法的操作就是调用析构函数: class session proxy public session proxy session proⅹy ) add torrent typedef storage interfaces (&storage constructor type)( file storae const&, file storage const*, fs:: path const& file pool& struct add torrent params add torrent params(storage constructor type s)

...展开详情
试读 96P libtorrent api开发手册
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    libtorrent api开发手册 38积分/C币 立即下载
    1/96
    libtorrent api开发手册第1页
    libtorrent api开发手册第2页
    libtorrent api开发手册第3页
    libtorrent api开发手册第4页
    libtorrent api开发手册第5页
    libtorrent api开发手册第6页
    libtorrent api开发手册第7页
    libtorrent api开发手册第8页
    libtorrent api开发手册第9页
    libtorrent api开发手册第10页
    libtorrent api开发手册第11页
    libtorrent api开发手册第12页
    libtorrent api开发手册第13页
    libtorrent api开发手册第14页
    libtorrent api开发手册第15页
    libtorrent api开发手册第16页
    libtorrent api开发手册第17页
    libtorrent api开发手册第18页
    libtorrent api开发手册第19页
    libtorrent api开发手册第20页

    试读结束, 可继续阅读

    38积分/C币 立即下载 >