分享下电驴(eMule)的源码

这里分享一款资源分享与下载工具——电驴,其实严格来说,应该叫电骡,这是我维护的版本,eMuleVeryCD版本,VeryCD是一个不错的资源分享网站:VeryCD电驴大全 - 分享互联网。大概在08年之前,中国市场流行的下载工具大概有三款:网际快车(flashget)、电驴(eMule)和迅雷,后来前两者都没落了。电驴的源码也开源了,迅雷抓住这个机会分析了电驴的下载协议(Kademlia),所以现在的迅雷也能解析电驴的下载协议,凡是能用电驴下载的链接,也能用迅雷下载。这是一些前尘往事吧。其实我蛮怀念那个时候的。

先看下软件功能截图吧。

编译方法:

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):Gruk.org's eMule/eDonkey Serverlist ed2k://|server|27.152.28.252|4242|/

这个是我维护的easyMule版本,由于不断的修改,可能会离原来的版本越来越远。

电驴的整个工程是mfc项目,里面使用的socket通信库是filezilla作者Tim Kosse在其开源项目filezilla中使用的CAsyncSocketEx,这是一个模仿mfc的CAsyncSocket类,但据说效率高于CAsyncSocket的类。

代码特点

电驴的代码虽然设计上不是最好的,但从代码风格和命名来说绝对是非常优良的,尤其是其变量、类名、函数等命名风格,真的是赏心悦目。而且其工程中的大多数类都可以直接拿来使用,比如http类CHttpClient、ftp类CFtpClient、线程池类CMemPool等。另外其使用的大量常用的库,如图形库CxImage、轻量级存储库sqlite3、解析xml库tinyXML、加密压缩库cryptlib和zlib等,也为我们学习和使用这些库提供了一个捷径,有图为证:

我曾经写过一篇电驴源码分析的入门文章,面向的初学者的,如果你有兴趣可以看看:电驴Emule源代码分析 - 豆丁网

代码获取地址

链接: 百度网盘 请输入提取码 提取码: fac3

如果你编译或者调试有问题可以私信我。

图书推荐

电驴运行于 Windows 平台,使用 C++ 开发,如果你对 Windows C/C++ 编程感兴趣,我推荐两本书,一本书:

1.《Windows 程序设计》

这本书讲述了 Windows UI 相关原理的方方面面,且语言朴实、娓娓道来,犹如一位良师益友,我当初也是看这本书进入 Windows C/C++ 开发领域的;这本书的业界地位很高,可以说这本书是中国的老一代 Windows 程序员的启蒙和进阶读物。

获取链接:

链接: 百度网盘 请输入提取码 提取码: g7py

2. 《Windows 核心编程》

这本书正好与上一本相互弥补,讲述的是 Windows 非 UI 部分的运行原理,内容非常丰富,当之“核心”二字无愧,图书的作者是编写 Windows Sysinternals 套件的 Jeffrey Richter,如果你没听说过 Windows Sysinternals 套件,那你一定听说过,Process Explorer:

侯捷老师评价这本书是“搞 Windows 开发,需要两样资源,一是 MSDN,一本就是《Windows 核心编程》”,这本书口碑非常好,多次重印,每一版都有一些新的改动和惊喜。

获取链接:

链接: 百度网盘 请输入提取码 提取码: wh74

图书资源收集于网络,如需要请购买正版,侵删。

CppGuide

我目前在大厂做架构,面试和指导千人成功找到满意的 C/C++ 岗位,在学习 C/C++ 开发的过程中踩过一个又一个坑,深知新手学习 C/C++ 的困难,因此特地给 C/C++ 开发的同学精心准备了一份优质学习资料————CppGuide,内容从 C/C++ 语言、网络编程、操作系统原理到完整的项目源码分析,同时这份资料也包括 C/C++ 学习方法、推荐的阅读书籍、简历指导和求职技巧等。

CppGuide 学习资料​mp.weixin.qq.com/s/4lJ07TCRx2zXCpYmhI6Ucw​编辑icon-default.png?t=N7T8https://mp.weixin.qq.com/s/Oej6y-pYcv20YGo6cCyLwg

Enjoy it!

easyMule 功能特色具体介绍   全新界面,使用更简便更直观   1)完全简化主界面UI,采用页签Tab方式,其实也是兼容老的emule操作习惯,用户明确知道有哪些功能页面。我们的原则是“简单流程不花哨”即可。   2)服务器/KAD/统计信息,单独分“高级”功能组   3)精简“选项”设置,兼容初级高级用户,默认只显示基本设置,需要调整设置只需要切换“更多”。   4)搜索用特殊搜索按钮实现,方便直观,凸显互联网“搜索”的重要性,并且兼容下载任务的添加,既可输入关键词搜索,也可输入下载地址建立下载任务。   5)提供新建任务对话框,可以用户直接输入下载地址,选择下载目录,并且可以批量下载。   内网穿透,下载速度明显提升   这个Low2Low功能全面保留并且稳定发布,全面提升内网用户的下载速度。   边下边看,精彩内容在线播放   满足用户看热门美剧/韩剧的需求,全局一次最多只能有一个任务"边下边看",内部对整个文件在全局网络的平衡性和文件调度平衡性做好调度优化。   磁盘缓冲,最大限度保护硬盘   emule的内部代码的磁盘缓冲控制非常弱小,对于爱惜硬盘的一些驴友来说,最大1.5M的设置实在太小了;easyMule使用了全新的内存缓冲实现,可设置范围扩大了很多(512K-16M),满足部分内存很大而且需要保护硬盘的用户   全能下载,多种协议全面互通   除了支持ed2k协议下载外,也可支持http/ftp协议下载,http/ftp下载完成后,算完hash值,之后该下载文件就可以加入到分享资源队列中,成为ed2k网络中可分享的资源,提升其它电驴用户的下载速度。   快速搜索,一键直达搜索结果   按F3,输入关键词,即可快速在VeryCD站内查找各类资源。   按shift+F3,切换到电驴网络搜索(既可以通过电驴服务器搜索,也可以通过Kad网络搜索)   任意下载,下载目录任意指定   以前emule下载必须先下载到一个指定临时目录,下载完成了后还需要移动文件到"Incoming"(已下载)目录,当有时候用户设置跨磁盘分区设置的时候,移动文件带来很多性能消耗,这一点一直有用户抱怨为什么不能采取其它下载工具的做法;这次改动后,easyMule下载目录可以在新建任务的时候任意指定,这样下载完成后再也不需要移动文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值