近日由于工作环境的关系,需要在终端模式下使用BT下载.在网上找了一些资料,选择了CTorrent进行使用.下面对于软件的使用进行说明总结. 一、软件的下载与安装 CTorrent是用C++开发的,不需要图形环境进行动行.我们可以通过http://cthttp://ctorrent.sourceforge.net/?action=downloads进行下载. 完成后解压,依次执行./configure,make install,make完成安装.程序默认安装在/usr/bin下,执行ctorrent即可运行。 然而,在实际使用中发觉并它不能顺利完成下载或者下载速度非常慢,到网上再一查,发觉有了一个Ctorrent的加强版, Ctorrent Enhanced ,官方网站为:http://www.rahul.net/dholmes/ctorrent/,加强版对于原来的版本进行了优化,同时修正了一些BUG,下载后的安装与CTorrent的步骤一样,安装完成后同样执行ctorrent命令,加强版会自动对原来的版本进行升级.下载地址为:http://www.rahul.net/dholmes/ctorrent/#download 二、软件的使用 ctorrent XXX.torrent 执行对XXX.torrent文件的下载。文件的参数包括: h/-H:显示帮助命令 -x:只解码并显示种子文件信息,不下载。 -c:只检查已下载的数据,不下载。 -v:打开debug调试输出。 下载选项: -e int 下载完毕后的做种时间(单位:小时),默认为72小时。 -p port 绑定端口,默认为2706。 -s save_as 重命名下载的文件,若是下载的是多个文件,则sava_as是包含多文件的目录。 -C cache_size 缓存大小,默认为16MB。 -f 强制做种模式,不进行SHA1 HASH检查。 -b bf_filename piece位图文件名,详见BitField::SetReferFile()。 -M max_peers 客户端最多与多少个peer通信。 -m min_peers 客户端至少与多少个peer通信。 -n file_number 多文件下,选择哪个文件去下载(例如第二个文件file_number就为2)。 -D rate 限制最大下载速率(单位:KB/s)。 -U rate 限制最大上传速率(单位:KB/s)。 -P peer_id 客户端通信的ID,默认为-CD0102-。 注:程序默认使用了2706端口,请确保服务器开放了此端口!! CTorrent运行时输出格式如下: 当下载过程中,会显示如下信息: $ / 1/10/40 [3/148/148] 2MB,1MB | 48,20K/s | 80,40K E:0,1 各项意义为: /:表明客户端正在工作的符号,以”- / | /”循环。 1:种子数目。 10:客户端正在通信的非种子的peer数目。 40:tracker服务器知道的peer数,也是整个bt通信群的peer数。 3:客户端已经下载的piece数目。 148:数据文件全部的piece数目。 148:客户端可以得到的piece数目,若此数小于全部piece数目则不会下载到完整的数据。 2MB:客户端已经下载的数据量。 1MB:客户端正在上传的数据量。 48:客户端的平均下载速率(KB/s)。 20:客户端的平均上传速率(KB/s)。 80:客户端的即时下载速率(KB/s)。 40:客户端的即时上传速率(KB/s)。 0:客户端与tracker服务器通信失败的次数。 1:客户端与tracker服务器通信成功的次数。 三、使用感受 Ctorrent下载中暂用的资源非常低,CPU暂有率基本保持在0.3%左右,下载速度也很稳定。同时还有专门的源代码可供研究。网上有一个兄弟对其进行了代码分析http://yaoxuchen.googlepages.com/ctorrent,大家有兴趣不妨看一看。在了解了BT协议的情况下,再配合源代码的分析,对于BT的原理和应用一定会达到如火纯清的地步。
|