开发 .NET 下的 FTP 客户端组件
2005-04-30 16:39
387 查看
最近有个项目需要支持 FTP 访问,但是 .NET 1.1 的 FCL 中没有提供相关的类,所以只好自己开发一个 FTP 客户端组件了。不过,我是一个懒惰型的程序员,当然不会一拿到需求就埋头苦干啦,呵~现在 Internet 如此发达,到处充满了有用的信息,到处充满了无限的商机,到处充满了可以利用的资源,到处充满了恐龙-_-! 男士们小心哦,嘻~
话归正题,我建议在自己开发一个 FTP 客户端组件或在使用一些开源的 FTP 客户端组件之前,先补充一下 FTP 协议相关的基础知识,这有会对你掌握 FTP 客户端组件的工作原理很有帮助。下面推荐几篇网上的文章,一般只要看完前三篇就行了:
l 浅析FTP的工作原理
l 文件传输协议(File Transfer Protocol, FTP)
l FTP命令详解
l FTP协议的分析和扩展
我在开发 FTP 客户端组件的过程中,参考了好几个开源项目,其实它们的工作原理一样的,只是看作者的设计如何,最终的效果主要表现在易用性、稳定性、可扩展性和兼容性上。
edtFTPnet
http://www.enterprisedt.com/products/edtftpnet/
edtFTPnet 是由 Enterprise Distributed Technologies 公司开发的一个 FTP 客户端组件,功能完善、文档齐全,并且项目使用了测试驱动开发(从源码看出)。这也是我选择它的主要原因。特点有:
l 支持主动模式(PORT)和被动模式(PASV)
l 支持二进制传输被中断后续传
l 支持通过事件监视传输进度
edtFTPnet不支持 SOCKS 代理和 FTPS,这两个功能在该公司的 edtFTPnet/PRO 产品中支持。
FTP Component
http://www.codeproject.com/dotnet/dotnetftp.asp
FTP Component 是由 Alex Kwok 开发的,除了不支持主动(PORT)模式外,其他功能跟上面的 edtFTPnet 差不多,组件的代码组织还可以,看起来很好用。我没有使用它的原因就是:用它上传文件没有问题,下载却总是找不到文件,跟踪了一下大概是在 list 命令那里出毛病。基于时间紧迫和本人是网络编程白痴,所以没有时间去慢慢研究。知道原因的朋友记得告诉我啊。
FtpClient
http://www.sunmast.com/soft/ftpclient.zip
FtpClient 组件是 Sunmast 兄弟很久以前(大学)写的,他说 bug 不少,我听了怕怕的。这个组件是第一个被我开刀的,大问题没有,就是不支持传输进度的事件跟踪,基于时间问题,所以就放弃了。Sunmast 说不打算更新该组件了,因为 .NET 2.0 已经支持 FTP 了。打开Visual Studio .NET 2005 的类库文档一看,在 System.Net 下果然多了 FtpWebRequest 和 FtpWebResponse 两个类,还有一个 FtpStatusCode 枚举。当时有一股冲动想用 Reflector 把 .NET 2.0 中的这三个类移植到 .NET 1.1 下,可是打开一看,一大堆看不懂,所以就没有“搞破坏”了。有兴趣的朋友可以试一试,记得搞定后把结果发给我就是啦。
.NET FTP Client
http://sourceforge.net/projects/dotnetftpclient/http://sourceforge.net/projects/dotnetftpclient/
这个是在 SourceForge 找到的,功能设计地比较简单,代码连注释都没有,干干净净地,狂晕。
其他的我没有用过,所以就不介绍了,最后一个是 FTP 服务器,不是 FTP 客户端。大家可以自己试一试,好用记得告诉我哦。
FTP.NET
http://sourceforge.net/projects/ftpnet/
Multi-threaded FTP Program written in C#
Ftp4net
http://sourceforge.net/projects/ftp4net/
Ftp4net is a C# class for communication with FTP Server, which conforms to the RFC 959 (FTP). It/'s an API that handles all FTP protocol commands. This class is designed for creating FTP Client software with .NET
Ftp Dot Net
http://sourceforge.net/projects/ftpcs/
Ftp Dot Net is a Ftp Server written in C#. It runs on Windows 2000/XP/2003 and Framework 1.1. It provide windows / Active Directory / NTFS authentication and permissions, Isolated ftp roots and Virtual Paths.
我要说的就这么多了,剩下的你们来写吧!
黎波
2005-4-30
话归正题,我建议在自己开发一个 FTP 客户端组件或在使用一些开源的 FTP 客户端组件之前,先补充一下 FTP 协议相关的基础知识,这有会对你掌握 FTP 客户端组件的工作原理很有帮助。下面推荐几篇网上的文章,一般只要看完前三篇就行了:
l 浅析FTP的工作原理
l 文件传输协议(File Transfer Protocol, FTP)
l FTP命令详解
l FTP协议的分析和扩展
我在开发 FTP 客户端组件的过程中,参考了好几个开源项目,其实它们的工作原理一样的,只是看作者的设计如何,最终的效果主要表现在易用性、稳定性、可扩展性和兼容性上。
edtFTPnet
http://www.enterprisedt.com/products/edtftpnet/
edtFTPnet 是由 Enterprise Distributed Technologies 公司开发的一个 FTP 客户端组件,功能完善、文档齐全,并且项目使用了测试驱动开发(从源码看出)。这也是我选择它的主要原因。特点有:
l 支持主动模式(PORT)和被动模式(PASV)
l 支持二进制传输被中断后续传
l 支持通过事件监视传输进度
edtFTPnet不支持 SOCKS 代理和 FTPS,这两个功能在该公司的 edtFTPnet/PRO 产品中支持。
FTP Component
http://www.codeproject.com/dotnet/dotnetftp.asp
FTP Component 是由 Alex Kwok 开发的,除了不支持主动(PORT)模式外,其他功能跟上面的 edtFTPnet 差不多,组件的代码组织还可以,看起来很好用。我没有使用它的原因就是:用它上传文件没有问题,下载却总是找不到文件,跟踪了一下大概是在 list 命令那里出毛病。基于时间紧迫和本人是网络编程白痴,所以没有时间去慢慢研究。知道原因的朋友记得告诉我啊。
FtpClient
http://www.sunmast.com/soft/ftpclient.zip
FtpClient 组件是 Sunmast 兄弟很久以前(大学)写的,他说 bug 不少,我听了怕怕的。这个组件是第一个被我开刀的,大问题没有,就是不支持传输进度的事件跟踪,基于时间问题,所以就放弃了。Sunmast 说不打算更新该组件了,因为 .NET 2.0 已经支持 FTP 了。打开Visual Studio .NET 2005 的类库文档一看,在 System.Net 下果然多了 FtpWebRequest 和 FtpWebResponse 两个类,还有一个 FtpStatusCode 枚举。当时有一股冲动想用 Reflector 把 .NET 2.0 中的这三个类移植到 .NET 1.1 下,可是打开一看,一大堆看不懂,所以就没有“搞破坏”了。有兴趣的朋友可以试一试,记得搞定后把结果发给我就是啦。
.NET FTP Client
http://sourceforge.net/projects/dotnetftpclient/http://sourceforge.net/projects/dotnetftpclient/
这个是在 SourceForge 找到的,功能设计地比较简单,代码连注释都没有,干干净净地,狂晕。
其他的我没有用过,所以就不介绍了,最后一个是 FTP 服务器,不是 FTP 客户端。大家可以自己试一试,好用记得告诉我哦。
FTP.NET
http://sourceforge.net/projects/ftpnet/
Multi-threaded FTP Program written in C#
Ftp4net
http://sourceforge.net/projects/ftp4net/
Ftp4net is a C# class for communication with FTP Server, which conforms to the RFC 959 (FTP). It/'s an API that handles all FTP protocol commands. This class is designed for creating FTP Client software with .NET
Ftp Dot Net
http://sourceforge.net/projects/ftpcs/
Ftp Dot Net is a Ftp Server written in C#. It runs on Windows 2000/XP/2003 and Framework 1.1. It provide windows / Active Directory / NTFS authentication and permissions, Isolated ftp roots and Virtual Paths.
我要说的就这么多了,剩下的你们来写吧!
黎波
2005-4-30
相关文章推荐
- 开发 .NET 下的 FTP 客户端组件
- 开发 .NET 下的 FTP 客户端组件
- 开发 .NET 下的 FTP 客户端组件
- 用.net开发ftp下载组件
- linux c/c++后台开发组件之:memcached 单机和分布式集群c++客户端
- Asp.Net Ajax 学习笔记23 利用Microsoft AJAX Library开发客户端组件(上)
- Android应用开发-小巫CSDN博客客户端之集成友盟社会化分享组件
- 在.net开发中使用Log4Net组件
- HTTP/FTP客户端开发库:libwww、libcurl、libfetch 以及更多
- 屏蔽.NET自定义开发组件中的属性 (MSPLUS原创)
- 10.15俺有个关于.net组件开发的讲座
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(三)——搭建Android开发环境,用Hibernate生成Android项目的Model层
- 帮助创建未来的 .NET 客户端开发
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用FTP(IOS FTP客户端开发教程)
- HTTP/FTP客户端开发库:libwww、libcurl、libfetch 以及更多[转]
- Python GUI开发之FTP客户端
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
- 在.net开发中使用Log4Net组件