开源一款资源分享与下载工具 —— 电驴(eMule)
这里分享一款资源分享与下载工具——电驴,其实严格来说,应该叫电骡,这是我维护的版本,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)的更多相关文章
- 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发. telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来. 复 ...
- 跑满带宽的一款百度网盘下载工具 : PanDownload
下载地址 : 点击进入 官网上面也有介绍使用.在这里,我再说一下 下载之后,解压,运行,登录, 登录好之后,准备进行设置 重要:下载情况分以下三部分 下载内容 < 300M,选择`打包下载`,只 ...
- Ubuntu系统下载工具的推荐
源 起 大家在上手一段时间Ubuntu系统后,可能突然想起最近新出了一些电影想要下载来看看,但如果用Wine运行迅雷,不是没反应就是启动后也不能下载,针对这个问题,根据我的使用体验推荐大家两款Ubun ...
- 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件
欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...
- 分享一款非常好用的Fatkun图片批量下载工具
Fatkun图片批量下载 相信大家一定遇到过有着大量精美图片的网页,譬如美女照片.各种壁纸.设计素材.甚至是1024套图等等,但常常几十上百张的图要一张张手工去点击下载实在能让人抓狂!小编的工作中也常 ...
- 国外一些好用的UX/UI设计工具和资源分享
国外一些好用的UX/UI设计工具和资源分享 你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.今天分享的这些U ...
- 分享12款最佳的Bootstrap设计工具
设计师总会渴望有一些新奇有趣的设计工具来提高工作效率,而Bootstrap就是您的不二选择.2013年Bootstrap得到了广泛普及, 它是开发者较为常用的框架之一,本文我们将分享12款最佳的Boo ...
- Cesium中文网——如何开发一款地图下载工具[一]
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium中文网的朋友们的其中一个主题是:自己独立开发一款地图 ...
- 5款Mac极速下载工具推荐和下载
最近几年用到下载工具的情况其实很少了,比如几年前我们可能经常用下载工具下载视频.音乐.图书等资源,但今天的我们更多的在线看视频.在线听音乐了,偶尔用到下载的时候直接用浏览器自带的下载工具也完全够用了, ...
随机推荐
- 20145327实验五 Java网络编程
实验五 Java网络编程 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器, ...
- 超详细 Spring @RequestMapping 注解使用技巧 (转)
@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上. 在这篇文章中,你将会看到 @R ...
- 关于JavaScript对象,你所不知道的事(二)- 再说属性
说完了对象那些不常用的冷知识,是时候来看看JavaScript中对象属性有哪些有意思的东西了. 不出你所料,对象属性自然也有其相应的特征属性,但是这个话题有点复杂,让我们先从简单的说起,对象属性的分类 ...
- HDFS并行复制Distcp
1)Distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具. 2)distcp命令是以MR作业(没有R任务)的形式实现的,把文件和目录的列表作为M任务的输入.每一个文件是由一个M任务来拷贝 ...
- 打开Mac OSX原生的NTFS功能
插上磁盘 从finder或者使用以下命令查看到磁盘的Volume Name: diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID ...
- The Startup Manager FAQ
Main Features: 1. Login Items: Manageable list of applications that are launched automatically ever ...
- SaltStack安装zabbix-agent-第九篇
环境 node1 192.168.56.11 角色 salt-master node2 192.168.56.12 角色 salt-minon 实现内容 使用salt远程安装zabbix ...
- vc libcurl 模拟上传文件
http://www.cnblogs.com/killbit/p/5393301.html 附上这篇文章,因为当时就已经想到了模拟上传,但是因为时间关系,所以就直接用PHP写了.现在改进一下,用VC+ ...
- java classloader原理深究
前面已经写过一篇关于java classloader的拙文java classloader原理初探. 时隔几年,再看一遍,觉得有些地方显得太过苍白,于是再来一篇: 完成一个Java类之后,经过java ...
- js添加事件 attachEvent 和addEventListener的用法
一般我们在JS中添加事件,是这样子的: obj.onclick = method 这种绑定事件的方式,兼容主流浏览器,但是如果一个元素上添加多次同一个事件呢??? obj.onclick = meth ...