CTorrent程序源码分析

CTorrent程序源码分析

ID:47318846

大小:1.66 MB

页数:79页

时间:2019-08-16

CTorrent程序源码分析_第1页
CTorrent程序源码分析_第2页
CTorrent程序源码分析_第3页
CTorrent程序源码分析_第4页
CTorrent程序源码分析_第5页
资源描述:

《CTorrent程序源码分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、CTorrent程序源码分析姚旭晨目录CTorrent程序源码分析11.前言31.1为什么要写这份文档31.2客户端的选择31.3CTorrent简介42.准备工作52.1知识储备52.2我对本篇源码分析的说明53.总述63.1CTorrent的命令行参数的意义63.2CTorrent的状态栏的意义63.3各个类实现的具体实例73.4BT协议的特性和CTorrent的实现情况84.源代码分析104.1ctorrent.cpp104.2downloader.cpp114.3bencode.h134.4bitfield.h154.4.1classBitFi

2、eld154.5btcontent.h184.5.1BTCACHE结构体184.5.2classbtContent184.6btfiles.h304.6.1StructBTFILE304.6.2ClassbtFiles314.7btrequest.h354.7.1classRequestQueue354.7.2classPendingQueue374.8btstream.h384.8.1classbtStream384.9bufio.h404.9.1classBufIo404.10connect_nonb.h424.11httpencode.h424.

3、12iplist.h444.12.1struct_iplist444.12.2classIpList444.13peer.h454.13.1宏454.13.2struct_btstatus464.13.3classbtBasic464.13.4classbtPeer:publicbtBasic474.14peerlist.h564.14.1struct_peernode564.14.2classPeerList574.15rate.h704.15.1变量704.15.2函数714.16setnonblock.h714.17sigint.h714.18t

4、racker.h724.18.1宏724.18.2变量724.18.3函数745.后记795.1开源和BitTorrent,不得不说的话795.2BT的精神:共享,公平和宽容795.3本篇文档的版权和莫做害群之马795.4我的敬意805.5结语80图表目录图表1main()函数流程图10图表2Downloader()函数流程图12图表3btFiles::_btf_recurses_directory()函数流程图33图表4btPeer::RequestPiece()函数流程图52图表5btPeer::Send_ShakeInfo()函数流程图55图表6

5、PeerList::UnChokeCheck()函数流程图61图表7算法1流程图62图表8算法3流程图63图表9PeerList::FillFDSET()函数流程图66图表10PeerList::AnyPeerReady()函数流程图68图表11btTracker::SendRequest()函数流程图77表格目录表格1BitField::Except()函数逻辑表16表格2m_shake_buffer[68]位填充情况191.前言1.1为什么要写这份文档BitTorrent点对点文件传输协议(以下简称BT协议)及其客户端应用大行其道的今天,各种各样的

6、客户端不胜枚举(可以参看http://wiki.theory.org/BitTorrentApplications),而各种各样的BT技术论坛讨论的却都是有关客户端软件如何使用的问题,有关底层协议细节和实现方案的讨论少之又少。我碰巧有机会研究过一阵BT协议的原理,也看过一部分源代码(CTorrent),虽然现在不再继续BT方面的研究了,但有感于当初看代码时遇到的资料的匮乏的窘境,便决心把自己的理解和心得写出来,算是自己的一份总结(这也是我的本科毕业论文),也希望帮助对BT协议实现有兴趣的人尽快上手,少走弯路。有关BT协议的论述主要有三篇文章:1,BT官

7、方网站上的协议解释:http://www.bittorrent.org/protocol.html。2,BittorrentProtocolSpecification,http://wiki.theory.org/BitTorrentSpecification。3,IncentivesBuildRobustnessinBitTorrent,http://www.bittorrent.com/bittorrentecon.pdf。这三篇文章从不同方面给出了BT协议从算法到实现的一个较为简略的描述。为了更深入地理解BT协议,自己动手写一个BT客户端或阅读一

8、个BT客户端的源代码的工作是必不可少的。1.2客户端的选择BramCohen是BT协议的创建者

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。