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