eMule电驴eDonkey从死到生

news/2024/10/19 2:18:11/

我带大家来研究一下eMule是如何运转的,

先说一个额外的话题,我强烈鄙视,'我思念的城市'这位网友,他在eNet程序员论坛<script type=text/javascript>menuregister(false, "forumlist")</script> » 挨踢生涯  中发表的文章:c++程序员修炼真经之四,是全文抄袭我的原创,极度鄙视这种用别人的智慧装点

自己门面的人.

首先大家找到emule.cpp

CemuleApp::CemuleApp(LPCTSTR lpszAppName) :CWinApp(lpszAppName)

里面大量的版本信息啊,界面大小图标啊,加载gdiplus.dll,我们先不看,就看这句   m_UPnP_IGDControlPoint = CUPnP_IGDControlPoint::GetInstance();

这是在启动电驴的PnP控制

然后我们看BOOL CemuleApp::InitInstance() 这里面最主要的就是他的配置类的初始化,

这个配置类在eMule整个程序运行的过程中都会起到非常重要的作用,

thePrefs.Init();

更重要的马上就登场了 CemuleDlg dlg;   

emuledlg = &dlg; 

m_pMainWnd = &dlg;

我们立即转到 BOOL CemuleDlg::OnInitDialog() 去看看

这里面绝大部分都是eMule界面的一些参数预设置,但是最核心的一个步骤,老外也很不厚道啊,他隐藏的很神秘啊,现在我来为大家点出来

VERIFY( (m_hTimer = ::SetTimer(NULL, NULL, 300, StartupTimer)) != NULL );

在这里他启动了一个非常重要的定时器,

void CALLBACK CemuleDlg::StartupTimer(HWND /*hwnd*/, UINT /*uiMsg*/, UINT /*idEvent*/, DWORD /*dwTime*/)

我们来看他的

case 4

try {     

theApp.downloadqueue->Init();    

}

非常关键的一步,他在初始化他的下载队列,

theApp.listensocket->StartListening() 启动监听端口,

可以接受连接了

theApp.clientudp->Create() 创建UDP客户端

再看case 6

AfxBeginThread(RUNTIME_CLASS(CAICHSyncThread),THREAD_PRIORITY_BELOW_NORMAL,0);

这是他的智能HASH算法线程,以后会和大家讲到.从这时起整个电驴就跑起来啦  


http://www.ppmy.cn/news/901097.html

相关文章

下载电驴屏蔽资源办法

最近发现了下载屏蔽掉的电驴资源下载办法&#xff0c;分享下&#xff1a; 比如说网址&#xff1a;http://www.verycd.com/topics/2864445/ 改为&#xff1a;http://www.verycd.gdajie.com/topics/2864445/ 即&#xff1a;在verycd.后面加gdajie就可以了&#xff01; 感兴趣的…

输电塔绝缘子上鸟巢检测(源码&教程)

1.输电塔绝缘子上鸟巢检测Python&#xff06;YOLOv5 &#xff08;1&#xff09;图片检测&#xff1a; &#xff08;2&#xff09;视频检测&#xff1a; [项目分享]输电塔绝缘子上鸟巢检测Python&#xff06;YOLOv5源码哔哩哔哩bilibili &#xff08;3&#xff09;完整视频演…

Verdi之波形展示nWave

6.nWave 6.1 添加波形文件 1.打开nWave界面&#xff0c;具体操作如下&#xff1a; 2.正式添加波形&#xff0c;使用快捷键G或者点击以下图标&#xff0c;选择需要的信号。 也可以在 n Trace中选中信号后&#xff0c;鼠标中键拖拽&#xff0c;或者ctrlw进行添加&#xff1b; 6…

2010年度最佳iphone游戏排行榜

有了iphone的出现后&#xff0c;感觉PSP直接被秒杀掉一样&#xff0c;家里存放着PSP2000现在像摆设品一样&#xff0c;毫无姿态的横放在布满灰尘的桌子上&#xff0c;一眼都不想瞧去&#xff0c;09年入手了台iphone3GS&#xff0c;从那天起&#xff0c;我就开始疯狂的迷上了它的…

12款精品上瘾iOS游戏

以下列举12款极易让人上瘾的精品游戏&#xff0c;或许我们能从中借鉴到一些优秀之处&#xff1a; &#xff08;转自 http://www.cocoachina.com&#xff09; Candy Crush Saga&#xff1a;疯狂的益智三消游戏&#xff08; 下载免费&#xff09; Candy Crush Saga是一个疯狂的益…

《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

第二章 公司治理、 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述★★ 商业银行公司治理是指股东大会、 董事会、 监事会、 高级管理层、 股东及其他利益相关者之间的相互关系&#xff0c; 包括组织架构、 职责边界、 履职要求等治理制衡机制&#xff0c; 以…

回锅肉飘香,《Pokémon GO》再度成为最卖座的iPhone游戏

《Pokmon GO》居然重获美国最受欢迎iPhone游戏的榜首&#xff01; 在上个月&#xff0c;席卷全球的增强现实游戏《Pokmon GO》从最受欢迎的游戏降到美国最卖座的iPhone游戏第四位&#xff0c;这也许是每个红极一时的游戏的宿命。不过&#xff0c;让人意外的是它这个月又重新回…

vue3.0之组合API有哪些(详解)

vue3.0之组合API有哪些 一、setup函数二、生命周期三、reactive函数四、toRef函数五、toRefs函数六、ref函数七、知识运用案例八、computed函数九、watch函数十、ref属性十一、父子通讯1.父传子2.子传父 十二、依赖注入十三、补充 v-model语法糖(简写)十四、补充 mixins语法 一…