BTCyclone开发日志
文章平均质量分 79
Lightest
这个作者很懒,什么都没留下…
展开
-
bencoding编码解析器
BT客户端开始一个下载首先要处理的就是torrent文件.而torrent文件使用bencoding编码.所以实现bencoding编码的解析器,就是第一步工作.Bencoding is done as follows:Strings are length-prefixed base ten followed by a colon and the string. For example /4:s原创 2005-01-09 19:38:00 · 18217 阅读 · 6 评论 -
torrent文件解析器
第二步工作是解析torrent文件,有了bencoding编码解析器 解析torrent文件当然是易如反掌的任务了.实现的封装类CTorrentParser,完成的主要任务有:1.判断torrent文件是否有效2.得到如下的重要信息: tracker服务器列表 文件列表 分块尺寸 分块个数 分块sha1的数组3.其他的一些次要信原创 2005-01-10 18:42:00 · 21902 阅读 · 14 评论 -
从tracker上获取peer列表
从torrent文件中得到了tracker列表后,接下来的工作就是获取peer列表.tracker使用http协议.客户端向服务器发送标准的GET请求,就可以得到这个列表.tracker返回的信息是bencode编码.向tracker发送的GET请求有如下一些参数:info_hash(必须): torrent文件中info字段的sha1.torrent文件解析器中已经计算此值,保存在原创 2005-01-16 04:56:00 · 5433 阅读 · 1 评论 -
与基于udp协议的tracker服务器进行交互
通常BT客户端每几分钟就要向tracker发送一次请求.对于一些比较大的BT站点,其tracker的压力是可想而知的.降低tracker的压力首先考虑到的当然是采用更低网络开销的udp协议.于是Bittorrent udp-tracker protocol应运而生. 这个协议很简单. 下面是实现它的封装类:// UDPTrackerClient.h: interface for原创 2005-01-21 05:26:00 · 4352 阅读 · 4 评论