查看文章
 
点量BT内核使用帮助文档(在线版)
2008-07-25 23:05

点量BT内核使用说明文档

Ver 2.0

版权说明: 如果您是个人作为非商业目的使用,您可以完全自由、免费的使用点量BT内核库和演示程序以及本文档的内容,也期待收到您反馈的意见和建议

如果您是作为商业使用,那么您需要联系作者申请产品的商业授权。

点量BT内核库所有演示程序的代码对外公开,内核库的代码只限付费用户个人使用。

Author: Hrybird2008-07-07

Mail: Hrybird at gmail dot com

HomePagehttp://hi.baidu.com/dlbtsoft

本说明文档也可以在以下站点访问:

https://sites.google.com/site/hrybird/

点量BT内核最新版为3.4.5版,本2.0版的在线文档仅供参考。详细情况,请下载参考3.4.5版SDK包里面的文档

一、      点量BT简介

1.1目的和功能

点量BT的开发目的是让用户无需关心和了解BT的具体实现细节,只需要写几十行甚至几行代码,便可以实现一个功能完善而且强大的BT应用软件,减少越来越多的应用程序需要纳入BT功能时的大量重复性开发和资金成本消耗。

点量BT内核提供标准的BT功能支持,同时支持目前流行的各类BT扩展协议,是一个功能丰富的BT应用开发工具包。除了BT功能,点量BT还支持客户自定义协议,在基于BT架构的基础上,帮助您实现自己的P2P网络通讯协议,构建自己的P2P用户群。

这里先列举点量BT的一些基本功能:

      标准BT协议支持:完全标准官方BT协议的支持,并支持常用的多项扩展协议,点量BT完全兼容各类BT应用软件。

      极其方便的调用方式:采用标准DLL方式,类似于系统的winsockdll,调用方式完全类似于系统API,结合作者完善的开发文档和演示代码,开发一个功能完善的BT应用软件,所需时间之短超出你的想象。

      支持HTTP协议同时下载:点量BT当前版本支持简单的跨协议下载,一方面突破了国内很多网络环境对BT端口和协议的封锁,另一方面解决了无人供种时的下载问题。

    DHT网络支持:点量BT提供标准的DHT网络支持,并自动加入Bitcomet、官方Bittorent等流行客户端的DHT网络,共享整个BT网络内的用户资源,一方面解决了无Tracker状态下的文件下载,另一方面提高了下载速度。

      智能磁盘分配:支持全面预分配模式,此模式下可以文件下载前预先分配磁盘空间,减少磁盘碎片的产生;同时也支持边下载边分配的方式,用户可以根据需要自己选择。

      支持UDP Tracker协议,支持多Tracker协议,支持等效Tracker报告。

      高效的UPnP穿透无需XP SP2的支持,实现各版本系统下的内网免配置。

      自动防火墙穿透技术:全自动穿透XPVista网络连接防火墙(ICF)和网络连接共享(ICS)

      支持XP SP2TCP/IP连接数限制的破解修改,保证P2P的良好效果。

      智能文件续传:记录上次文件的各种信息,下次启动时无需扫描,立即启动下载。并且保存了上次的Peer信息,提高启动下载的速度。

      完善丰富的接口支持:提供丰富的控制和获取信息的接口,满足应用程序绝大部分的功能需求。比如,不仅可以限制全局上传下载速度和连接数,也可以对每个任务单独设置等。

     提供专业上传服务器模式:点量BT商业版支持专业的上传服务器模式,该模式专注于上传性能的提升,优化大量文件上传时的传输效率和IO性能,适合提供大量文件给客户下载时使用(比如视频网站、游戏程序的分发时,由专门的服务器使用上传服务器模式支撑大量用户的下载)。

     私有种子加密:通过私有种子加密,可以构建自己的私有BT网络,防止其它客户端使用你公司的种子文件。

     私有协议支持:支持设置自定义协议,构建自己的私有P2P网络,并突破各网络环境对BT应用的封锁。

1.2适用范围

如果您需要开发BT或者P2P的下载功能,那么可以考虑使用点量BT,您可以在点量BT的基础上开发,希望能对您有所帮助,节省您的开发成本。

如果您需要提供较大数据量的软件、视频等文件供其它人在互联网进行下载,而且您希望节省带宽和服务器成本,那么可以考虑使用点量BT,使用点量BT开发工具包很快就可以实现您想要的上传服务器。

点量BT可以被应用于视频网站、软件站点、网络游戏程序的下载和更新、教育视频和文档的下载等领域。

1.3支持的语言和开发环境

点量BT提供标准的动态链接库(DLL),可供C/C++DelphiC#JavaVB等语言调用,让您完全像调用系统API一样的使用点量BT开发工具包(SDK)。

点量BT内核和演示程序的开发环境是Visual Studio .Net 2003,如果您需要编译和阅读点量BT SDK中的示例程序,建议您安装 Visual Studio .Net 2003开发环境。

点量BT开发工具包中提供了分别基于MFCC#的两个版本的示例程序,你完全可以参考它们来调用点量BT内核。


二、      外部接口的整体介绍

2.1外部接口的模块结构

点量BT对外提供的接口,可以划分为如下几个部分:

      Kernel整体环境相关:Kernel整体环境承担着整个点量BT其它模块的管理功能,负责监听一个TCP端口和一个UDP端口(UDP端口可选,用于DHT通讯,如果不启动DHT则不需要监听UDP端口),管理所有的下载任务。

     下载任务的相关接口:每个Torrent种子文件的下载对应一个下载任务对象Downloader,该部分提供对某个单一下载任务的控制(启动、暂停、限速等)和信息的读取接口。

     制作种子的相关接口:用于种子文件的制。该部分不仅符合标准BT协议规范,并且支持国内比较流行的BT客户端软件Bitcomet的一些扩展做法(嵌入发布者信息、默认使用公共DHT网络节点等)。注意,一个Torrent文件中可以包含多个要下载文件的描述。

     获取种子信息的接口:可以在不启动任务下载的情况下,打开指定的种子文件,获取种子文件内的相关信息。

     P2P辅助功能接口:这部分提供P2P软件都需要的一些接口,包括UPnP穿透、穿透ICF防火墙、突破操作系统并发连接数限制等。不仅可以应用于点量BT,也可以应用于其它任何需要的程序,独立于内核,不需要内核的启动。

    批量获取信息接口:该部分是为了方便一次性取出大量信息时调用,可以通过调用少量接口函数返回一个信息的结构体或者结构体数组,包含常用的大量信息。

2.2常见的调用流程

      首先,在程序启动的时候,根据实际需要,选择调用突破系统防火墙的接口将当前的应用程序以及相关进程加入防火墙的例外;调用接口检查操作系统的并发连接数限制,判断是否需要进行连接数的修改;调用UPnP穿透接口,将相关应用程序所有需要监听的端口,添加到UPnP设备中去――点量BT内核内部使用的TCPUDP端口无需外部程序调用添加,内部会自动添加。

     程序启动后,根据用户的界面操作,启动一个Torrent文件的下载。一般需要用户选择一个Torrent文件和下载的保存路径。启动Torrent文件时,只需要调用下载任务的启动接口即可,下载任务会自动启动下载,并立即返回该任务的句柄。

     下载过程中应用程序可以随时调用下载任务的接口获取下当前下载的速度和进度、连接情况、Torrent中每个文件的进度等各种信息,可以随时调用下载任务的接口设置下载限速等。

     下载任务启动成功后,内核不会自动停止该任务,需要应用程序主动调用停止和删除。一般地当检查到下载任务的进度到了100%或者状态是供种状态时,程序可以选择停止任务或者设置一个上传限速,继续上传。

     程序结束前,需要调用下载任务的接口,将每个Torrent任务停止,然后调用内核的关闭接口,释放内核的所有资源。

注意:建议对BT相关操作尽量控制在一个线程内进行,除非特殊情况,尽量不要跨线程,这样便于避免系统内部需要等待不同线程锁,提高系统运行速度。这个可以参考演示程序源码中的实现。

、      接口函数
由于接口函数页面排版有些问题,暂时不提供在线版的接口函数帮助,如果需要查阅接口函数的帮助,请访问点量BT官方网站http://hi.baidu.com/dlbtsoft下载完整的点量BT SDK开发包文档,那里面有完整的帮助文件

4.1 现在也有些开源的BT软件了,为什么还要点量BT呢?

现在是有一些开源的BT软件,但是它们并不是那么易于调用,并且开源的软件往往在文档、易用性上存在问

题,甚至很多开源的BT软件有不同程度的BUG。更为严重的是,它们都没有可靠的技术支持服

务,所以我开发了点量BT,希望在这些方面能有所改善,促进BT应用的更广阔发展。您可以根据自己的需要

选择合适的BT内核。

4.2 点量BT为什么有少量功能演示版中暂不支持,只在部分商业版中支持呢?

原因是因为点量BT前期是应用于几个客户的项目,有些功能不是大家都需要的,很多功能是分散到了不同的

项目中去了,比如支持代理功能和缓存功能等,它们分别属于在不同的客户应用

中。

点量BT是基于这些客户的项目应用抽取出来的,抽取的工作是分步骤进行的,我会尽快在后续版本中将各个

功能完善。

点量BT的最终目标将是,演示版和商业版只有一个区别:演示版只能同时进行两个种子文件的下载,商业版

没有限制,其它功能将完全一样。――但这个需要一定的时间,因为作者还在同时

进行其它项目的开发。

如果您急需某个功能,请联系我,我会乐意帮你优先增加。

4.3 点量BT有后续升级计划么,如果有,那么计划是什么呢?

点量BT将一方面根据客户的反馈,一方面根据作者对现有BT应用的理解,不断完善更新,目前大致考虑的升

级计划是:

1)     根据客户的要求,逐步完善增加接口,以客户的反馈安排增加接口的顺序。

2)     抽离一个专业的上传服务器版本,决心抽取出来是因为,毕竟客户端和支撑大量下载的服务器很多地方

是有区别的,甚至有些地方是有矛盾的。比如,客户端为了减少cpu利用率,可能需

要少量线程的模式即可,但如果做专业服务器,则可以采用经典的并发式服务器的设计模式(比如IISWeb

服务器),大幅度提高上传的效率。这个专业的上传服务器将更适合专业的数万个

文件的同时上传服务。

3)     做兼容支持WinCE等嵌入式系统的BT内核。

如果您有其它的建议,也期待着您联系我,帮我指出。

4.3 点量BT提供源码吗?

点量BT所有演示程序(目前包括一个MFC版本,一个C#版本)的代码全部开放,不过演示程序的代码只是演

示内核使用的性质,在代码质量和可靠性上需要你斟酌使用,不保证演示程序代码的

高可靠性。

如果您需要点量BT内核程序的源代码,那么需要首先支付一定的授权费用,请联系作者了解详细信息。

4.4 为什么调用有些函数,编译时有错误,提示类似:“error LNK2019:无法解析的外部符号

_DLBT_SetMaxCacheSize@”的错误?

这是因为目前版本的点量BT内核中有些函数暂不提供(这个在接口函数说明中有注明),对于这类函数,如

果你调用,编译时便会有这个错误提示,请联系作者增加这些函数或者等待下个版

本的发布。

4.5 有些功能暂未提供,我是否可以申请作者增加这些功能?

完全可以,也非常欢迎提供您的反馈,根据您的需要,作者可以在时间合适时增加指定的功能。

4.6 如何向作者进行反馈?

您可以在点量BT主页上留言:http://hi.baidu.com/dlbtsoft

或者直接给作者发送邮件:hrybird at gmail.com

我将努力尽快回复您的反馈。

4.7 我可以免费使用点量BT的内核吗?

可以,但免费版有些使用限制,并且不能用于商业用途。

4.8 如何才能获得点量BT的商业版本及其授权呢?

首先,需要联系作者,协商需要哪些功能(有些功能如果没有,需要增加,作者需要估计工作量),然后双方

达成协议后付费给作者,作者交付商业版本及签订商业授权协议。

4.9 商业版本同演示版本有什么区别呢?

商业版本没有同时下载任务的限制,并且提供更为完善的技术指导;演示版本不被授权用于商业应用。

4.10 点量BT使用起来方便么?

非常方便。您完全像在调用DeleteFile等系统API似的方式调用点量BT,如果您是有一定工作经验的程序员,

完全可以在3天内掌握点量BT的用法,在2周内开发出一个功能十分完善的BT应用软

件。


类别:点量bt内核||添加到搜藏 |分享到i贴吧|浏览(8297)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu