BitWave的Host:
源碼放在github上,采用NEW BSD LICENSE發(fā)布。地址:https://github.com/airtrack/bitwave
寫B(tài)itWave起因
去年買新筆記本之前,老的筆記本裝的是Windows 7的RC版本,而RC版本在去年3月就停止支持,每2個小時重啟一次。因為打算買新筆記本,所以也就懶得裝XP了。在買新筆記本之前的兩周內(nèi)就一直在用Linux,雖然以前經(jīng)常折騰Linux,但是連續(xù)這么長時間用還是少,尤其是要在Linux下下載電影。不知道是人品問題還是啥的,我在Linux下面下載BT的速度重來沒上過100KB/S(2M的帶寬)。試過各種BT客戶端,神馬Transmission、Deluge和被譽(yù)為神器的Mldonkey,最悲劇的就是神器Mldonkey了,重來沒超過20KB/S,悲劇的就直接不看電影了。忍了兩周,買了新筆記本,重新回到迅雷的懷抱。后來想了想,為啥都是下載軟件,咋差距那么大呢。為了找到原因,以身試法,看看為啥差距那么大,決定自己寫個BT的客戶端,于是就開始了漫長的開發(fā)了。
BitWave的這一年
從去年5月底開始寫B(tài)itWave,看BT協(xié)議,寫torrent文件解析,寫網(wǎng)絡(luò)庫,寫極簡的http的協(xié)議(只有request和response的一部分),寫各種各樣的雜七雜八的東西,到最后把核心寫完,用時一年,而且很大部分是今年寫的。這一年間,各種加班,各種看書,各種看電影,各種上網(wǎng),各種玩游戲,各種寫其它程序,各種各種,總之沒多少時間寫。
BitWave目前狀況
BitWave用C++做開發(fā)語言,使用Visual Studio 2010編譯,目前只支持Windows。
BitWave包含一個異步網(wǎng)絡(luò)庫(IOCP實現(xiàn))、一個簡單的線程封裝、一個極簡極簡的http協(xié)議解析、一個Buffer、一個簡單的UnitTest(這個太簡了,以后再加強(qiáng))。BitWave需要VS2010編譯,因為使用了shared_ptr和function+bind。目前的核心只實現(xiàn)了最基本的BT協(xié)議,擴(kuò)展協(xié)議一個不支持,當(dāng)然核心的東西還在不斷改進(jìn)中。BitWave目前是一個命令行的程序,命令行中也只支持一個任務(wù),并且不允許選擇下載哪些文件,也就是完全下載,當(dāng)然這些功能在核心是都有的,能夠支持多個任務(wù)和選擇下載文件。在核心功能稍微完善了之后會考慮做個GUI(額,很久沒寫GUI程序了,都懶的做了)。
BitWave的未來計劃
近期的計劃:
1、當(dāng)然是完善核心功能;
2、寫一個log系統(tǒng),這個太重要了,沒有l(wèi)og,改進(jìn)下載算法太難了,其他客戶端的行為完全不可預(yù)料;
3、任務(wù)的保存與恢復(fù)。
中期和長期的計劃:
1、移植Linux,寫這個的起因就是Linux下的下載軟件從來都是不給力,至少在我電腦上;
2、支持其他擴(kuò)展的協(xié)議。
博客更新計劃
接下來的一段時間,當(dāng)然希望有時間(各種加班吶),把這一年寫B(tài)itWave的一些值得記錄的東西寫下。可能包括以下東西:
1、網(wǎng)絡(luò)庫的開發(fā)記錄;
2、核心的結(jié)構(gòu)及P2P下載的一些東西理解吧;
3、沒了,好像本來就沒多少東西。
posted on 2011-05-29 17:39
airtrack 閱讀(4662)
評論(8) 編輯 收藏 引用