最近有个项目需要支持 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.
我要说的就这么多了,剩下的你们来写吧!
黎波
<chsdate year="2005" month="4" day="30" islunardate="False" isrocdate="False" w:st="on"></chsdate>2005-4-30
分享到:
相关推荐
《基于ASP.NET的FTP客户端设计与开发》 在信息技术领域,FTP(File Transfer Protocol)是一种广泛使用的协议,用于在互联网上进行文件传输。基于ASP.NET技术实现FTP客户端的设计与开发,能够提供用户友好的界面,...
此外,标签中的"软件/插件"提示我们,这个FTP客户端可能被设计为可复用的组件,可以方便地插入到其他ASP.NET项目中,提高开发效率。而"课程设计"则意味着这个项目适合教学和实践,可以帮助初学者掌握实际开发技能。 ...
ASP.NET FTP客户端设计与开发是一项常见的任务,尤其在构建网络应用程序时,可能需要与FTP服务器进行交互,上传或下载文件。本项目提供的源代码和论文深入探讨了如何使用ASP.NET技术来实现这样的功能。 首先,ASP...
ASP.NET FTP客户端设计与开发是一项将FTP(File Transfer Protocol)协议与ASP.NET技术结合的应用,旨在创建一个基于Web的FTP客户端。这样的客户端可以让用户通过浏览器上传、下载、管理远程服务器上的文件,无需...
总之,`.net下ftp封装源码,并有简单实例`是一个非常实用的开发资源,它提供了FTP客户端功能的实现,便于.NET开发者快速集成FTP功能,而无需从头编写所有底层代码。配合提供的FTP服务器工具和说明文档,开发者可以更...
FTP客户端的核心组件包括: 1. **FTP连接**:客户端首先需要建立与FTP服务器的连接,这通常通过TCP/IP协议在标准FTP端口21上完成。连接过程涉及用户名和密码的验证。 2. **FTP命令**:Java FTP客户端通过发送FTP...
Java作为一门面向对象的编程语言,具有跨平台的特性,因此开发的FTP客户端组件可以在多种操作系统上运行,如Windows、Linux和Mac OS。Java中的`java.net`和`java.io`等核心库提供了对FTP协议的基本支持,但构建一个...
总之,在WinCE系统下开发FTP客户端软件是一项涉及网络通信、文件操作、多线程以及可能的安全机制整合的技术任务。开发者需要对FTP协议有深入理解,并具备嵌入式系统的开发经验,以确保软件在各种环境下稳定高效地...
通常,FTP客户端包含以下关键组件: 1. 连接管理:用户输入FTP服务器的地址(如IP或域名)、端口号(默认21)以及登录凭据(用户名和密码)。 2. 文件浏览:客户端显示服务器目录结构,允许用户浏览、选择要操作的...
在Web开发中,实现类似FTP客户端的上传和下载功能,主要涉及到的是文件传输技术,以及Web服务器与FTP服务器之间的交互。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要了解FTP(File Transfer Protocol...
此外,`org.apache.commons.net.ftp`库提供了一套完整的FTP客户端实现,简化了上述操作。 在描述中提到的“java写的ftp程序”,可能就是利用Apache Commons Net库或者Java内置的Socket类来实现的。这个程序可能包含...
Java是一种跨平台的编程语言,它提供了丰富的库和API,使得开发FTP客户端成为可能。 FTP客户端是允许用户连接到FTP服务器并执行各种操作,如上传、下载、列出目录内容、移动或删除文件的软件。在这个项目中,Java被...
它基于TCP/IP协议族,提供了客户端-服务器架构,使得用户可以通过FTP客户端连接到FTP服务器,上传、下载或管理远程文件。 2. **C#语言**:C#是由微软开发的一种面向对象的编程语言,广泛应用于Windows平台上的应用...
4. **用户界面(UI)设计**:描述中提到的FTP客户端具有良好的UI设计,这可能包括图形化界面,比如使用Swing或JavaFX库来创建窗口、按钮、文本框等组件,提供直观的操作方式。UI设计应考虑用户体验,包括错误提示、...
开发FTP客户端时,可能会用到特定的库,如libcurl(跨平台)、Python的ftplib、Java的java.net.Socket等。这些库提供了FTP相关的函数和方法,简化了与服务器的交互。 7. **安全考虑**: 虽然FTP在早期广泛使用,...
在Java中,我们可以使用`java.net.Socket`类和`java.io`包中的类来实现FTP客户端。Java还提供了一个`java.net.FTPClient`类,但在这个项目中,可能自定义了FTP客户端实现,以便更好地控制和扩展功能。 **4. 文件...
在3.3版本中,`org.apache.commons.net.ftp.FTPClient`类是实现FTP通信的核心组件。这个类提供了一系列方法,允许开发者与FTP服务器进行交互,执行如上传、下载、删除文件、创建目录等操作。 FTPClient类的主要功能...
FTP 客户端软件使用 C# 语言开发,利用 .NET Framework 实现。该软件还使用了以下技术: * FTP 协议:用于实现文件的上传和下载。 * TCP/IP 协议:用于实现与 FTP 服务器的连接。 * C# 语言:用于开发 FTP 客户端...
它也可能包含FTP客户端,支持文件上传和下载。另外,可能还有TCP/IP和UDP通信的支持,用于构建基于这些底层协议的应用程序,比如聊天软件、实时数据传输系统等。 在使用LumiSoft.Net时,由于它是开源的,开发者可以...
本文将围绕"C#.NET网络编程之FTP协议开发"这一主题,详细阐述C#.NET框架下如何实现FTP客户端和服务端的开发。 首先,FTP协议是一种基于TCP/IP的协议,主要用于在Internet上进行文件的上传和下载。它通过控制连接和...