開源一款資源分享與下載工具 —— 電驢(eMule)

 這裏分享一款資源分享與下載工具——電驢,其實嚴格來說,應該叫電騾,這是我維護的版本,eMuleVeryCD版本,VeryCD是一個不錯的資源分享網站:http://www.verycd.com/。大概在08年之前,中國市場流行的下載工具大概有三款:網際快車(flashget)、電驢(eMule)和迅雷,後來前兩者都沒落了。電驢的源碼也開源了,迅雷抓住這個機會分析了電驢的下載協議(Kademlia),所以現在的迅雷也能解析電驢的下載協議,凡是能用電驢下載的鏈接,也能用迅雷下載。這是一些前塵往事吧。其實我蠻懷念那個時候的。

 

    先看下軟件功能截圖吧。

 

 

代碼下載地址:https://github.com/baloonwj/easyMule

 

編譯方法:

 

1.將rcdll.dll複製到Visual Studio 2013安裝目錄的VC\bin目錄中。(這是爲了使用能在vista下顯示的圖標)

2. 用VS2013打開easyMule_Libs.sln,執行“生成解決方案”。(easyMule_Libs.sln裏所包含的是easyMule所依賴的庫文件。)

3.用VS2013打開easyMule.sln編譯即可。


 

電驢服務器列表(eMule server list):http://gruk.org/list.php     ed2k://|server|27.152.28.252|4242|/

這個是我維護的easyMule版本,由於不斷的修改,可能會離原來的版本越來越遠。

 

電驢的整個工程是mfc項目,裏面使用的socket通信庫是filezilla作者Tim Kosse在其開源項目filezilla中(關於filezilla具體參見我的另外一篇博文:《開源一款ftp軟件——filezilla》)使用的CAsyncSocketEx,這是一個模仿mfc的CAsyncSocket類,但據說效率高於CAsyncSocket的類。

代碼特點

電驢的代碼雖然設計上不是最好的,但從代碼風格和命名來說絕對是非常優良的,尤其是其變量、類名、函數等命名風格,真的是賞心悅目。而且其工程中的大多數類都可以直接拿來使用,比如http類CHttpClient、ftp類CFtpClient、線程池類CMemPool等。另外其使用的大量常用的庫,如圖形庫CxImage、輕量級存儲庫sqlite3、解析xml庫tinyXML、加密壓縮庫cryptlib和zlib等,也爲我們學習和使用這些庫提供了一個捷徑,有圖爲證:

 

我曾經寫過一篇電驢源碼分析的入門文章,面向的初學者的,如果你有興趣可以看看:http://www.docin.com/p-668034568.html

 

如果你在使用或者閱讀這份電驢源碼的過程中遇到什麼問題,歡迎留言。也可以加入我們的QQ技術交流羣:49114021。

Enjoy it!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章