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 阅读(4638)
评论(8) 编辑 收藏 引用