1.分享一款 ftp 软件 —— filezilla的源码
2.FileZilla Server简介
3.分享下电驴(eMule)的源码
分享一款 ftp 软件 —— filezilla的源码
Filezilla是一款功能强大的FTP/SFTP文件管理工具,其官网为filezilla-project.org/,由开发者Tim Kosse维护。自从我在大学校园网中偶然接触到它的客户端以来,这款软件的高效性和流畅性让我一直使用至今,即使如今我的网景浏览器源码开发环境已转换为Linux环境,我仍然在Windows与Linux服务器之间使用它进行文件传输。
与原作者的跨平台交叉编译环境不同,作为习惯使用Visual Studio进行Windows程序开发的人来说,Filezilla的客户端直接使用VS进行编译和调试更符合我的需求。另外,我修改了编译方法以适应VS环境。
界面简洁直观,包括客户端和服务器端组件。服务器端包含两个程序:一个以Windows服务形式运行的小程序部署源码filezillaserver,另一个是用于管理服务器端用户账号、共享目录等信息的filezillaserverinterface。
编译方法如下:
1. 打开filezillaserver\filezillaserver\filezillaserver.sln,使用VS进行编译。
2. 打开filezillaserverinterface\filezillaserver\filezillaserverinterface.sln,同样使用VS进行编译。
客户端使用C++开发,而服务器端的filezillaserver和filezillaserver选择了VS,是因为它们利用了C++的一些特性,而VS无法支持所有这些特性。
客户端依赖第三方库,如wxWidgets、zlib、sqlite等进行界面设计和数据处理。文件上传直链源码CAsyncSocketEx类模仿了mfc的CAsyncSocket,具有更高的效率。项目的独特之处在于使用Windows消息队列替代传统的自定义消息队列,实现了FTP协议的高效处理。代码质量高,结构清晰。
如需获取项目源码或最新版本,可联系我获取最新源码制作的可调试版本。同时,相关视频分析已发布,方便了解其内部结构和工作原理。
FileZilla Server简介
FileZilla是一款广受欢迎的开源、免费的FTP客户端和服务器解决方案,它以卓越的cbk开奖网页源码性能和高安全性著称。其安全特性得益于其开放源代码的特性,使得它在保障数据传输的安全性方面具有显著优势。FileZilla的核心技术基于C/C++,这使得它的性能远超那些使用VB/Dephi平台开发的同类应用,能够轻松应对千兆网络环境,支持数百用户同时进行高速下载,性能堪比IIS服务器。
然而,尽管FileZilla在功能上表现出色,但仍存在一些局限性,主要体现在不支持配额功能。具体来说,它并不具备内置的上传和下载文件大小限制,这意味着用户在使用时需要额外管理文件的老友互娱源码大小控制。对于那些需要严格控制文件存储和传输量的用户来说,这可能是一个需要考虑的点。
分享下电驴(eMule)的源码
这里分享一款资源分享与下载工具——电驴,实际上应该称为电骡,这是我维护的版本,eMuleVeryCD版本,VeryCD是一个不错的资源分享网站: verycd.com/。大约在年之前,中国市场流行的下载工具大约有三款:网际快车(flashget)、电驴(eMule)和迅雷,后来前两者都没落了。电驴的源码也开源了,迅雷抓住这个机会分析了电驴的下载协议(Kademlia),所以现在的迅雷也能解析电驴的下载协议,凡是能用电驴下载的链接,也能用迅雷下载。这是一些前尘往事吧。其实我蛮怀念那个时候的。
先看下软件功能截图吧。
编译方法:
1.将rcdll.dll复制到Visual Studio 安装目录的VC\bin目录中。(这是为了使用能在vista下显示的图标)
2. 用VS打开easyMule_Libs.sln,执行“生成解决方案”。(easyMule_Libs.sln里所包含的是easyMule所依赖的库文件。)
3.用VS打开easyMule.sln编译即可。
电驴服务器列表(eMule server list): gruk.org/list.php ed2k://|server|...||/
这个是我维护的easyMule版本,由于不断的修改,可能会离原来的版本越来越远。
电驴的整个工程是mfc项目,里面使用的socket通信库是filezilla作者Tim Kosse在其开源项目filezilla中使用的CAsyncSocketEx,这是一个模仿mfc的CAsyncSocket类,但据说效率高于CAsyncSocket的类。
代码特点
电驴的代码虽然设计上不是最好的,但从代码风格和命名来说绝对是非常优良的,尤其是其变量、类名、函数等命名风格,真的是赏心悦目。而且其工程中的大多数类都可以直接拿来使用,比如/p-.h...
代码获取地址
链接: pan.baidu.com/s/RQcgq...
提取码: fac3
如果你编译或者调试有问题可以私信我。
图书推荐
电驴运行于 Windows 平台,使用 C++ 开发,如果你对 Windows C/C++ 编程感兴趣,我推荐两本书,一本书:
1.《Windows 程序设计》
这本书讲述了 Windows UI 相关原理的方方面面,且语言朴实、娓娓道来,犹如一位良师益友,我当初也是看这本书进入 Windows C/C++ 开发领域的;这本书的业界地位很高,可以说这本书是中国的老一代 Windows 程序员的启蒙和进阶读物。
获取链接:
链接: pan.baidu.com/s/1BCCYjg...
提取码: g7py
2. 《Windows 核心编程》
这本书正好与上一本相互弥补,讲述的是 Windows 非 UI 部分的运行原理,内容非常丰富,当之“核心”二字无愧,图书的作者是编写 Windows Sysinternals 套件的 Jeffrey Richter,如果你没听说过 Windows Sysinternals 套件,那你一定听说过,Process Explorer:
侯捷老师评价这本书是“搞 Windows 开发,需要两样资源,一是 MSDN,一本就是《Windows 核心编程》”,这本书口碑非常好,多次重印,每一版都有一些新的改动和惊喜。
获取链接:
链接: pan.baidu.com/s/1SH1b0G...
提取码: wh
图书资源收集于网络,如需要请购买正版,侵删。
CppGuide
我目前在大厂做架构,面试和指导千人成功找到满意的 C/C++ 岗位,在学习 C/C++ 开发的过程中踩过一个又一个坑,深知新手学习 C/C++ 的困难,因此特地给 C/C++ 开发的同学精心准备了一份优质学习资料————CppGuide,内容从 C/C++ 语言、网络编程、操作系统原理到完整的项目源码分析,同时这份资料也包括 C/C++ 学习方法、推荐的阅读书籍、简历指导和求职技巧等。
Enjoy it!