亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? emule源代碼解析-1.txt

?? 電驢開發書籍 eMule是一個典型的MFC程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
eMule的官方首頁上寫著:2002年05月13日 一個叫做 Merkur 的人,他不滿意原始eDonkey2000客戶端并且堅信他能夠做的更好,所以他開始制作。他聚集了其它開發人員在他的周圍,并且eMule工程就此誕生。

eMule是一個典型的MFC程序,它的圖形界面等,已經和MFC緊緊融合到了一起。因此通常情況下它只能在windows平臺下運行。有一些其它的工程,如aMule等,把它進行了移植,因此跨平臺的功能要強些。

其實還有另外一個叫做xMule的工程,不過現在已經人氣快不行了。在aMule的主頁上可以看到eMule移植到linux平臺下的一些歷史,最早是有個叫做lMule的工程,他使用wxwidgets來進行eMule的跨平臺的移植,這個工程2003年就不再更新了,后來轉變成為xMule工程,它一度是linux平臺下eMule的事實上的替代品。但是他們的程序員之間由于理念不同,發生了內訌,導致aMule分裂出來,他們后來矛盾嚴重的時候曾經一度從理念問題上升到互相對對方進行人身攻擊,并且曾經對對方的網站發動過DDos。后來aMule和xMule就是兩個完全不同的工程,xMule現在只有HopeSeekr一個人在維護,基本上也沒有什么更新了。這一點不僅讓人感慨。今年寒假的時候我曾經和HopeSeekr進行過一些交流,感覺他非常自信,經常拿著aMule的一部分代碼來給我看,說你看看他們的代碼這么這么寫,這簡直就是一陀xx嘛,這種代碼在某些情況下肯定會Crash掉嘛,相反,你看看我們xMule的代碼,這里是這樣這樣,肯定就不會有這種問題了。

eMule從0.42版開始支持Kad技術,這是一個非常重要的里程碑。Kad是一種DHT的協議,它可以使節點之間互相保留一些其它節點的聯系信息,并且利用這樣一個“關系網”尋找到整個網絡中的任何一個節點以及上面的資源,整個過程不需要任何中心服務器。因此向當年搞napster那樣直接端掉中心服務器就搞跨napster網絡一樣來對付eMule的Kad網就毫無作用了。0.42版是2004年2月27日放出的,比eDonkey2000的OverNet晚了將近一年,但是它的Kad網絡的規模卻在迅速擴大。Overnet和eMule中的Kad使用的都是Kademlia結構,但是具體的消息報文的格式有區別,因此兩個DHT網絡并不能互相兼容。OverNet直到現在,用戶也仍然維持在十萬左右,這是比較近的一篇文章寫的。但是eMule的Kad網的規模有多大,目前卻沒有一個很準確的說法。由此也可以看出開源軟件的力量。目前aMule的Kad網和eMule的Kad網是兼容的,xMule中還沒有Kad的支持。Kad協議的原始paper可以在我們實驗室的機器上下到:

http://bigpc.net.pku.edu.cn:8080/paper/new/by%20conference/IPTPS/IPTPS02/Kademlia%20A%20Peer-to-Peer%20Information%20System%20Based%20on%20the%20XOR%20Metric%28IPTPS02%29.pdf

 

eMule的代碼結構非常合理。雖然代碼量比較大,但是各個功能模塊之間的劃分都很合理。從它的工程文件里面就可以看出這一點。eMule把表示功能的代碼文件和表示界面的代碼文件分開了,Source Files和Header Files是實現功能的代碼的源文件和頭文件,而Interface Source和Interface Header是實現圖形界面的源文件和頭文件。由于eMule的代碼量太大,本系列將跳過圖形界面的實現,著重分析eMule的功能實現部分的代碼,而且功能實現方面也主要挑主要的部分分析。本節將從emule.cpp開始分析,引出eMule中使用到的幾個主要的功能實現的類,并大體描述它們的作用。最后介紹一下如何在VS2003下編譯eMule。emule中還有不少模塊實現的功能挺有用,我說的是在其它的程序里很有用,可以考慮在其它程序中進行復用。

emule.cpp為類CemuleApp的實現。因此在運行時,首先會運行InitInstance進行一些初始化的工作。從這個函數里面我們也可以第一次看出那些即將在整個程序中發揮作用的類了。

最開始的時候是計算出程序常用的一些目錄,如配置文件,日志文件等。接下來是ProcessCommandline,它的作用有兩方面,第一是確認該eMule的運行方式,即命令行后面有沒有參數,第二是確認目前eMule是不是只有一個實例在運行。在一般的情況下,雙擊eMule可執行文件是不會帶參數的。但是通過點擊鏈接或者打開關聯文件的方式打開eMule則相當于帶參數運行eMule。通過在注冊表里添加一些項目可以讓一個程序和某種鏈接或者某個后綴的文件產生關聯。具體辦法可以參見OtherFunctions.cpp中的Ask4RegFix,BackupReg,RevertReg三個函數的功能。ProcessCommandline中通過創建帶有名稱的互斥信號量來確認是否有其它的eMule實例在運行。對于一個確定的名稱,CreateMutex只能創建一個互斥信號量。因此通過該信號量是否創建成功就可以知道是否有其它eMule實例運行。如果有的話,而且又是帶參數的那種模式,那么直接把這個參數使用Windows的消息機制發給那個窗口即可,接下來的代碼無非就是如何找到另外一個叫"eMule"的家伙以及給它發個什么消息。pstrPendingLink是一個全局變量,表示將要被處理的命令行參數。它將會在初始化完成后一段時間后被處理。

下面兩個比較重要的類是CPreferences和CStatistics。前者掌握著程序的大部分配置數據,后者則進行各種統計。它們的特點都是有很多的成員變量,而且還是靜態的,這種方式可以保證它們的唯一性,而且把這些變量統一到一個類管理。但是實際上并不需要了解每個變量的含義。thePrefs和theStats是這兩個類的唯一的實例。

在處理完其它一些事情,包括創建圖形界面對象CemuleDlg后,接下來可以看到一排一排的創建新對象的語句。這些類將會實現eMule程序運行的主要功能,后面的系列將詳細分析。

最后描述一下如何在VS2003里編譯eMule,由于eMule中用到了一些其它的庫,因此官方在提供eMule的源代碼下載的同時如果也提供這些庫的下載會使源碼包變得很大。因此eMule選擇了讓開發者去那些庫的官方網站下載它們的方式。一般來說,編譯這種工程文件,很重要的地方是要保持各個庫和主程序編譯參數的一致性。這些編譯參數中,最主要的參數有三個,字符集(多字節/Unicode),調試/發行,單線程/多線程,這樣排列組合一下就有八個版本了。因此編譯的時候如果不注意,就會出現和程序設計無關的錯誤。

eMule0.47a解壓后自帶id3lib庫,還需要下載以下的庫:

zlib:
http://www.gzip.org/zlib/

ResizableLib:
http://sourceforge.net/projects/resizablelib/

Crypto++:

http://www.eskimo.com/~weidai/cryptlib.html

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国三级在线一区| 欧美高清性hdvideosex| 亚洲嫩草精品久久| 91国模大尺度私拍在线视频| 亚洲韩国一区二区三区| 在线播放91灌醉迷j高跟美女 | 秋霞国产午夜精品免费视频| 精品少妇一区二区三区日产乱码| 国产一区二区三区免费观看| 欧美国产精品一区二区| 在线影视一区二区三区| 日韩av在线播放中文字幕| 久久久久久麻豆| 91麻豆国产福利在线观看| 亚洲成人你懂的| 日韩美女在线视频| 国产v日产∨综合v精品视频| 亚洲麻豆国产自偷在线| 91精品欧美久久久久久动漫| 国产一区二区导航在线播放| 亚洲视频一区在线观看| 欧美丰满美乳xxx高潮www| 狠狠色狠狠色综合系列| 亚洲精品视频在线观看免费| 欧美日韩成人激情| 国产一区二区看久久| 一区二区三区免费看视频| 91精品国产综合久久婷婷香蕉| 国产精品888| 亚洲精品大片www| 精品少妇一区二区三区免费观看 | 国产欧美日韩一区二区三区在线观看| 成人黄色a**站在线观看| 午夜视频在线观看一区二区 | 在线日韩av片| 激情五月激情综合网| 综合久久久久久| 欧美一区二区三区在线视频| 成人免费观看视频| 丝袜美腿亚洲一区二区图片| 国产精品三级av| 欧美一级片在线观看| 99久久国产综合色|国产精品| 免费在线视频一区| 亚洲欧洲美洲综合色网| 日韩视频一区二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 免费观看在线色综合| 亚洲日本在线观看| 欧美www视频| 在线亚洲高清视频| 国产成人自拍网| 丝袜亚洲精品中文字幕一区| 国产精品国产自产拍高清av王其| 91精品国产色综合久久久蜜香臀| 91社区在线播放| 国产老女人精品毛片久久| 天天综合色天天综合色h| 国产精品嫩草影院av蜜臀| 日韩欧美中文字幕精品| 91搞黄在线观看| 国产成人精品影院| 免费看日韩a级影片| 亚洲综合激情小说| 亚洲国产精品t66y| 日韩精品一区在线观看| 欧美日韩在线播放一区| 91香蕉视频mp4| 国产成人精品一区二区三区四区| 午夜视频在线观看一区二区 | 日韩手机在线导航| 在线观看三级视频欧美| 成人18精品视频| 国产盗摄一区二区三区| 男人的j进女人的j一区| 午夜视频一区二区| 樱花影视一区二区| 国产精品久久久久久久久免费丝袜 | 久久久久久久久久看片| 911精品产国品一二三产区| 一本大道久久a久久精品综合| 丁香婷婷综合色啪| 亚洲激情五月婷婷| 久久亚洲二区三区| 欧美v日韩v国产v| 91精品国产高清一区二区三区蜜臀| 99久久99久久精品国产片果冻| 国产成人亚洲综合a∨婷婷| 激情综合色丁香一区二区| 日韩av中文字幕一区二区三区| 亚洲伊人色欲综合网| 亚洲人成网站在线| 中文字幕欧美激情一区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美电影免费观看高清完整版在 | 51午夜精品国产| 欧美日韩高清在线播放| 欧美日本在线看| 欧美三级电影网| 欧美亚洲动漫另类| 欧美亚洲国产一区二区三区| 91极品视觉盛宴| 在线观看网站黄不卡| 欧美最猛黑人xxxxx猛交| 欧美中文一区二区三区| 欧美中文字幕不卡| 欧美日韩免费不卡视频一区二区三区| 91精彩视频在线观看| 欧美三日本三级三级在线播放| 欧美主播一区二区三区| 欧美日韩aaaaaa| 欧美一区二区视频在线观看2020| 91精品国产综合久久久蜜臀图片| 欧美一激情一区二区三区| 日韩一区和二区| 欧美成人a在线| 天天色 色综合| 青青青伊人色综合久久| 久久成人免费电影| 国产麻豆精品95视频| 粉嫩一区二区三区在线看| www.亚洲激情.com| 色综合天天综合网天天看片| 欧美在线色视频| 欧美二区在线观看| 欧美一区二区二区| 久久人人爽爽爽人久久久| 日本一区二区电影| 亚洲另类中文字| 婷婷综合另类小说色区| 麻豆成人久久精品二区三区红 | 免费在线看成人av| 国内欧美视频一区二区| 成人av综合在线| 91国内精品野花午夜精品| 欧美精品vⅰdeose4hd| 精品国产第一区二区三区观看体验 | 国产亚洲一区二区三区在线观看| 欧美经典一区二区三区| 有码一区二区三区| 日本欧美在线观看| 狠狠色丁香久久婷婷综合_中| 国产jizzjizz一区二区| 91香蕉视频mp4| 欧美一级在线观看| 国产精品视频观看| 亚洲一卡二卡三卡四卡无卡久久| 免费高清成人在线| 成人一级视频在线观看| 欧美综合色免费| 精品久久免费看| 成人欧美一区二区三区1314 | 丝袜美腿亚洲一区| 国产精品88av| 欧美午夜不卡视频| 欧美v日韩v国产v| 亚洲男人都懂的| 免费成人美女在线观看.| www.成人网.com| 欧美一区二区三区不卡| 国产偷国产偷精品高清尤物| 夜夜操天天操亚洲| 国产一区二区中文字幕| 欧美性色黄大片手机版| 久久久久久久久久美女| 亚洲国产精品久久久久婷婷884 | 日韩一级二级三级| 国产偷v国产偷v亚洲高清| 亚洲午夜免费视频| 国产乱码精品一区二区三区av| 成人h精品动漫一区二区三区| 91精品一区二区三区久久久久久| 国产精品网站在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品丝袜在线| 日韩国产精品91| 91女厕偷拍女厕偷拍高清| 日韩欧美在线影院| 曰韩精品一区二区| 国产成人在线视频免费播放| 欧美日韩一级二级三级| 国产精品午夜在线观看| 美女精品一区二区| 色中色一区二区| 国产欧美日韩综合精品一区二区| 丝瓜av网站精品一区二区| av在线播放不卡| 精品欧美一区二区在线观看| 一区二区成人在线| 成人午夜大片免费观看| 日韩视频一区二区在线观看| 亚洲精品国产精品乱码不99| 国产一区二区精品久久99| 5566中文字幕一区二区电影| 亚洲人成网站精品片在线观看| 国产一区二区三区免费看| 91精品久久久久久久99蜜桃| 一区二区三区毛片| av资源网一区| 欧美国产一区视频在线观看|