亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
精品一区二区精品| 丁香桃色午夜亚洲一区二区三区| 国产精品夜夜爽| 日韩亚洲欧美中文三级| 一区二区三区在线免费播放| 国产91丝袜在线播放九色| 欧美一激情一区二区三区| 国产精品久久久久永久免费观看 | 中文字幕在线一区免费| 奇米777欧美一区二区| 欧美福利一区二区| 亚洲午夜成aⅴ人片| 欧美日韩成人一区二区| 国产69精品久久久久777| 亚洲欧美日韩中文播放 | 99在线热播精品免费| 亚洲欧美国产三级| 日韩欧美在线不卡| 成人av电影免费观看| 免费欧美日韩国产三级电影| 国产精品亲子伦对白| 欧美日韩一级二级三级| 国产一区二区成人久久免费影院| 亚洲色图丝袜美腿| 日韩欧美国产午夜精品| 色成人在线视频| 国产成人一级电影| 青娱乐精品在线视频| 亚洲私人影院在线观看| 精品国免费一区二区三区| 色婷婷综合久久久久中文一区二区 | 欧美激情一区二区三区不卡 | 日韩在线a电影| 国产日产精品一区| 日韩欧美国产麻豆| 91福利国产成人精品照片| 国产精品一二三区| 理论电影国产精品| 亚洲成人动漫精品| 亚洲欧洲成人精品av97| 精品成人一区二区三区四区| 欧美久久久久久久久久| 色天使色偷偷av一区二区| 国产成人欧美日韩在线电影| 麻豆精品国产传媒mv男同| 亚洲综合偷拍欧美一区色| 中文字幕不卡的av| 中文字幕不卡一区| 久久久综合网站| 久久亚洲欧美国产精品乐播| 日韩一二三区不卡| 日韩一级片网址| 欧美一级日韩不卡播放免费| 欧美日韩日日摸| 欧美性淫爽ww久久久久无| 91麻豆.com| 欧洲色大大久久| 在线一区二区三区四区| 99视频精品全部免费在线| 不卡一区在线观看| 岛国精品在线观看| 成人免费视频国产在线观看| 国产成人高清视频| 豆国产96在线|亚洲| 粉嫩aⅴ一区二区三区四区| 国产一区二区三区观看| 高清不卡一二三区| 99re视频精品| 在线观看不卡视频| 欧美日韩国产成人在线免费| 欧美日韩国产另类一区| 欧美猛男gaygay网站| 91啪九色porn原创视频在线观看| 国产麻豆一精品一av一免费| 激情亚洲综合在线| 国产成人小视频| 99视频精品在线| 成人黄色小视频| 91丨国产丨九色丨pron| 色婷婷激情一区二区三区| 7777精品久久久大香线蕉| 2021国产精品久久精品| 中文字幕av一区 二区| 亚洲素人一区二区| 青青草国产成人99久久| 国产一区二区电影| 91视频免费看| 日韩一级二级三级精品视频| 欧美激情一区二区三区四区| 亚洲精品写真福利| 精品写真视频在线观看| fc2成人免费人成在线观看播放| 色老综合老女人久久久| 日韩欧美一区二区三区在线| 国产精品私人影院| 亚洲一区影音先锋| 狠狠色2019综合网| 色婷婷久久久综合中文字幕| 日韩你懂的在线播放| 中文字幕不卡三区| 日本不卡高清视频| 成人黄色在线看| 欧美一区二区在线观看| 国产精品国产三级国产aⅴ无密码| 亚洲精品国产无套在线观| 激情图片小说一区| 色域天天综合网| 久久久影视传媒| 午夜影院在线观看欧美| 国产91精品在线观看| 欧美精三区欧美精三区| 中文字幕一区二区视频| 日本不卡中文字幕| 色综合久久中文综合久久97| 久久理论电影网| 日韩经典中文字幕一区| 9l国产精品久久久久麻豆| 亚洲精品一区二区三区精华液| 亚洲男人的天堂在线观看| 国产久卡久卡久卡久卡视频精品| 欧美亚洲一区二区在线观看| 国产丝袜美腿一区二区三区| 日韩av中文在线观看| 成人av网站在线| 久久久美女艺术照精彩视频福利播放| 亚洲永久免费av| 99久久精品免费看国产免费软件| 欧美va日韩va| 日本伊人色综合网| 欧美日韩另类一区| 亚洲视频小说图片| 成人成人成人在线视频| 久久综合九色综合欧美亚洲| 日韩精品欧美精品| 欧美精品视频www在线观看 | 国产精品国产三级国产普通话蜜臀 | 国产无一区二区| 免费高清在线一区| 亚洲国产精品av| 久久99深爱久久99精品| 日韩一区二区精品葵司在线| 三级精品在线观看| 欧美一级日韩不卡播放免费| 日韩精品91亚洲二区在线观看| 欧美肥胖老妇做爰| 日本在线不卡视频一二三区| 欧美久久久久久蜜桃| 日韩av一二三| 欧美不卡一区二区三区四区| 老司机一区二区| 国产欧美一区二区精品性色| 国产电影精品久久禁18| 国产欧美一区二区精品久导航| 成人免费视频caoporn| 亚洲欧洲av一区二区三区久久| 99久久精品国产一区二区三区| 日韩美女啊v在线免费观看| 91久久一区二区| 日本不卡在线视频| 精品处破学生在线二十三| 国产福利一区二区三区视频在线| 欧美国产日韩精品免费观看| 97se亚洲国产综合在线| 亚洲一区视频在线| 宅男在线国产精品| 国产乱人伦偷精品视频免下载 | 92国产精品观看| 亚洲欧洲制服丝袜| 欧美三级在线看| 精品一区二区三区av| 亚洲国产岛国毛片在线| 欧美日韩一区国产| 国产美女视频91| 一区二区三区高清不卡| 欧美精品丝袜久久久中文字幕| 精品在线播放免费| 成人免费在线视频观看| 欧美日韩国产中文| 国产成人自拍高清视频在线免费播放| 亚洲色图视频网站| 91精品国产综合久久久蜜臀粉嫩| 国产自产v一区二区三区c| 亚洲色图欧美激情| 日韩欧美一区在线观看| 大陆成人av片| 三级亚洲高清视频| 国产精品乱人伦一区二区| 欧美精品自拍偷拍动漫精品| 国产乱理伦片在线观看夜一区| 亚洲精品成人精品456| 久久亚洲影视婷婷| 欧美日韩高清影院| 成人午夜av影视| 久久综合综合久久综合| 一级日本不卡的影视| 久久久精品免费网站| 日韩午夜在线观看视频| 91视频观看免费| 国产a区久久久| 麻豆精品一二三|