这里分享一款资源分享与下载工具——电驴,其实严格来说,应该叫电骡,这是我维护的版本,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!

开源一款资源分享与下载工具 —— 电驴(eMule)的更多相关文章

  1. 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~

    不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发. telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来. 复 ...

  2. 跑满带宽的一款百度网盘下载工具 : PanDownload

    下载地址 : 点击进入 官网上面也有介绍使用.在这里,我再说一下 下载之后,解压,运行,登录, 登录好之后,准备进行设置 重要:下载情况分以下三部分 下载内容 < 300M,选择`打包下载`,只 ...

  3. Ubuntu系统下载工具的推荐

    源 起 大家在上手一段时间Ubuntu系统后,可能突然想起最近新出了一些电影想要下载来看看,但如果用Wine运行迅雷,不是没反应就是启动后也不能下载,针对这个问题,根据我的使用体验推荐大家两款Ubun ...

  4. 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

    欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...

  5. 分享一款非常好用的Fatkun图片批量下载工具

    Fatkun图片批量下载 相信大家一定遇到过有着大量精美图片的网页,譬如美女照片.各种壁纸.设计素材.甚至是1024套图等等,但常常几十上百张的图要一张张手工去点击下载实在能让人抓狂!小编的工作中也常 ...

  6. 国外一些好用的UX/UI设计工具和资源分享

    国外一些好用的UX/UI设计工具和资源分享 你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.今天分享的这些U ...

  7. 分享12款最佳的Bootstrap设计工具

    设计师总会渴望有一些新奇有趣的设计工具来提高工作效率,而Bootstrap就是您的不二选择.2013年Bootstrap得到了广泛普及, 它是开发者较为常用的框架之一,本文我们将分享12款最佳的Boo ...

  8. Cesium中文网——如何开发一款地图下载工具[一]

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium中文网的朋友们的其中一个主题是:自己独立开发一款地图 ...

  9. 5款Mac极速下载工具推荐和下载

    最近几年用到下载工具的情况其实很少了,比如几年前我们可能经常用下载工具下载视频.音乐.图书等资源,但今天的我们更多的在线看视频.在线听音乐了,偶尔用到下载的时候直接用浏览器自带的下载工具也完全够用了, ...

随机推荐

  1. 20145328 《Java程序设计》实验二实验报告

    20145328 <Java程序设计>实验二实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 ...

  2. 20135302魏静静——linux课程第三周实验及总结

    linux课程第三周实验及总结 一.实验:跟踪分析Linux内核的启动过程 使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开shell cd LinuxKer ...

  3. LeetCode (226):Invert Binary Tree 递归实现

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...

  4. shell编程学习笔记之sed编辑器

    在shell编程中,大多数处理的都是文本文件.对文本文件进行处理除了使用交互式文本编辑器(vi[m],gedit......)也可以使用另外一类:流编辑器. 流编辑器:使用预定义的编辑规则来对文本进行 ...

  5. 在Linux Centos 7.2 上安装指定版本Docker。

    相关资料链接: https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce 先清空下“历史” yum remov ...

  6. centos7 firewall 操作

    一.firewall配置 The configuration for firewalld is stored in various XML files in /usr/lib/firewalld/ a ...

  7. 2017 ACM-ICPC 南宁区比赛 Minimum Distance in a Star Graph

    2017-09-25 19:58:04 writer:pprp 题意看上去很难很难,但是耐心看看还是能看懂的,给你n位数字 你可以交换第一位和之后的某一位,问你采用最少的步数可以交换成目标 有五组数据 ...

  8. 关于javascript以及jquery如何打开文件

    其实很简单, <input type="file" id="file" mce_style="display:none"> 这个 ...

  9. 关于IIS权限问题(Selenium WebDriver调用出错记录)

    本地VS调试过程中用Selenium WebDriver打开FF浏览器可以正常工作,项目部署至IIS后请求调用浏览器一直提示超时,异常如下: 因为本地调试可以成功,首先排除组件版本问题和浏览器兼容问题 ...

  10. js的一些编码问题

    1 eval()的使用; 未声明变量的使用: 遗漏的分号; 不恰当的换行; 错误的逗号使用; 语句周围遗漏的括号; switch分支语名中遗漏的break; 重复声明的变量; with的使用; 错误使 ...