bt解析 开源 java_开源一个BT客户端:BitWave

BitWave的Host:

源码放在github上,采用NEW BSD LICENSE发布。地址:https://github.com/airtrack/bitwave

写BitWave起因

去年买新笔记本之前,老的笔记本装的是Windows 7的RC版本,而RC版本在去年3月就停止支持,每2个小时重启一次。因为打算买新笔记本,所以也就懒得装XP了。在买新笔记本之前的两周内就一直在用Linux,虽然以前经常折腾Linux,但是连续这么长时间用还是少,尤其是要在Linux下下载电影。不知道是人品问题还是啥的,我在Linux下面下载BT的速度重来没上过100KB/S(2M的带宽)。试过各种BT客户端,神马Transmission、Deluge和被誉为神器的Mldonkey,最悲剧的就是神器Mldonkey了,重来没超过20KB/S,悲剧的就直接不看电影了。忍了两周,买了新笔记本,重新回到迅雷的怀抱。后来想了想,为啥都是下载软件,咋差距那么大呢。为了找到原因,以身试法,看看为啥差距那么大,决定自己写个BT的客户端,于是就开始了漫长的开发了。

BitWave的这一年

从去年5月底开始写BitWave,看BT协议,写torrent文件解析,写网络库,写极简的http的协议(只有request和response的一部分),写各种各样的杂七杂八的东西,到最后把核心写完,用时一年,而且很大部分是今年写的。这一年间,各种加班,各种看书,各种看电影,各种上网,各种玩游戏,各种写其它程序,各种各种,总之没多少时间写。

BitWave目前状况

BitWave用C++做开发语言,使用Visual Studio 2010编译,目前只支持Windows。

BitWave包含一个异步网络库(IOCP实现)、一个简单的线程封装、一个极简极简的http协议解析、一个Buffer、一个简单的UnitTest(这个太简了,以后再加强)。BitWave需要VS2010编译,因为使用了shared_ptr和function+bind。目前的核心只实现了最基本的BT协议,扩展协议一个不支持,当然核心的东西还在不断改进中。BitWave目前是一个命令行的程序,命令行中也只支持一个任务,并且不允许选择下载哪些文件,也就是完全下载,当然这些功能在核心是都有的,能够支持多个任务和选择下载文件。在核心功能稍微完善了之后会考虑做个GUI(额,很久没写GUI程序了,都懒的做了)。

BitWave的未来计划

近期的计划:

1、当然是完善核心功能;

2、写一个log系统,这个太重要了,没有log,改进下载算法太难了,其他客户端的行为完全不可预料;

3、任务的保存与恢复。

中期和长期的计划:

1、移植Linux,写这个的起因就是Linux下的下载软件从来都是不给力,至少在我电脑上;

2、支持其他扩展的协议。

博客更新计划

接下来的一段时间,当然希望有时间(各种加班呐),把这一年写BitWave的一些值得记录的东西写下。可能包括以下东西:

1、网络库的开发记录;

2、核心的结构及P2P下载的一些东西理解吧;

3、没了,好像本来就没多少东西。

posted on 2011-05-29 17:39 airtrack 阅读(4277) 评论(8)  编辑 收藏 引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值