基于.NET的FTP客户端设计与实现

2015-06-24 06:41孟祥成
软件导刊 2015年6期

摘要:分析FTP客户端与服务器的连接过程及FTP请求与应答工作模式。通过软件设计,实现FTP客户端程序与服务器的连接,具备上传、下载等功能。

关键词:.NET;FTP客户端;C/S模式

DOIDOI:10.11907/rjdk.151244

中图分类号:TP319

文献标识码:A 文章编号:16727800(2015)006012302

作者简介作者简介:孟祥成(1981-),男,江苏南京人,硕士,三江学院计算机科学与工程学院实验师,研究方向计算机网络技术。

0 引言

FTP(File Transfer Protocol,FTP)用于Internet控制文件的双向传输。简单来说,FTP就是完成两台不同电脑间的复制、粘贴工作。FTP既可以采用客户端/服务器(Client/Server)模式,也可以采用浏览器/服务器(Browser/Server)模式。

在日常信息获取中,网络带宽以及各种服务限制对用户信息共享造成了一定影响,使用类似于浏览器的下载功能或者类似于迅雷的下载工具会受到极大限制。但是FTP可以不受其限制,其传输速率比基于HTTP协议的更快。FTP作为常用的文件传输服务,有安全保障,开发者可以选择通过SSL、SSH2等安全协议进行安全性加密,保证数据的安全性[1]。

作为一个可以上传与下载任何文件的传输协议,无论是文本、图像、音频、视频都可以在此框架内进行共享[2]。可以通过FTP客户端将数据上传到指定的服务器或者指定的Web服务器中,需要下载时可通过客户端从网络服务器下载到本地计算机。

1 FTP系统需求分析与系统设计

本文 FTP客户端程序实现的功能不仅包括文件列表显示、上传、下载,还包括用户登录认证、匿名访问,此外还添加了配置文件的保存以及基本的文件与目录识别功能。

1.1 需求分析

作为一个实用的FTP客户端程序,基本功能必不可少,包括用户登录以及用户信息验证,此外最重要就是文件上传与下载。

用户使用FTP客户端程序时,首先登录服务器,输入用户名与密码。服务器在验证用户名与密码后,判断用户能否登上服务器,划分用户访问服务器的权限。同时完成用户隐私保护,用户等级区分以及用户权限识别。这样可以根据用户权限显示不同文件夹,提高效率,保障安全性。

用户使用FTP客户端程序主要为访问服务器,获取或者上传服务器文件。本文FTP客户端系统采用C/S模式完成文件上传与下载,服务器与客户端分别完成数据连接时的信息发送与响应返回功能,两者配合使用,使得FTP系统具有较强的实用性。

此外,用户登录时还可以选择使用匿名登录功能,但是此种登录方式使用的前提是在FTP服务器端创建匿名用户。

1.2 FTP系统设计

FTP客户端系统采用客户端/服务器模型,客户端与服务器各自实现其功能。本文着重探讨FTP客户端搭建,主要介绍FTP客户端模块划分。

(1)用户登录模块。用户在客户端程序中输入用户名、密码。建立与服务器的连接,服务器自动识别该账号的等级权限以及是否为匿名用户。

(2)服务器文件列表显示模块。用户成功登录服务器后,显示服务器所指定的文件目录,并且可实现目录跳转。

(3)本地文件列表显示模块。打开软件后即可显示本地盘符中的所有文件夹以及文件,并显示该盘符文件信息。通过下拉列表框选择盘符跳转。

(4)文件上传模块。实现从本地选择文件,并通过客户端与服务器间的数据连接将本地文件复制到文件显示列表所显示的当前文件列表中。

(5)文件下载模块。实现从文件显示列表中选定需要的文件,并通过客户端与服务器间的数据连接将文件复制到选择的目录中。

(6)辅助功能模块。实现文件配置的保存等功能。

系统模块设计图如图1所示。

2 基于.NET的FTP客户端实现

2.1 控制连接建立

控制连接建立是FTP文件传输的第一步,只有建立控制连接后才可以建立数据连接,并进行文件传输。

2.2 用户身份验证

完成控制连接建立后,在获取文件列表以及下载上传文件之前,需要对用户信息进行验证。

2.3 文件传输实现

文件传输功能主要通过ShowFtpFileAndDirectory()方法实现。首先实现控制连接,再通过CreateFtpWebRequest()方法建立数据连接。CreateFtpWebRequest()方法通过传入FTP地址和.NET封装好的字段实现将“LIST”命令发送至FTP服务器,再通过GetFtpResponseFTP()方法获得FTP服务器响应。通过这两个方法实现FTP客户端与FTP服务器之间的数据连接。FTP服务器响应请求通过数据连接将文件列表以文件的形式返回至FTP客户端。

2.4 文件下载实现

文件下载功能主要通过FilesDownLoad()方法实现。首先实现控制连接,再通过CreateFtpWebRequest()方法建立数据连接。CreateFtpWebRequest()方法通过传入FTP地址和.NET封装好的字段实现将“RETR”命令发送至FTP服务器,再通过GetFtpResponseFTP()方法获得FTP服务器的响应。通过这两个方法实现FTP客户端与FTP服务器的数据连接。FTP服务器响应请求通过数据连接将文件返回至FTP客户端。

2.5 文件上传实现

文件上传功能主要通过FilesUpLoad()方法实现。首先实现控制连接,再通过CreateFtpWebRequest()方法建立数据连接。CreateFtpWebRequest()方法通过传入FTP地址和.NET封装好的字段实现将“STOR”命令发送至FTP服务器,再通过GetFtpResponseFTP()方法获得FTP服务器的响应。通过这两个方法实现FTP客户端与FTP服务器的数据连接。FTP客户端通过数据连接将文件上传到FTP服务器。

3 系统测试

3.1 系统测试平台建立

通过FTP客户端访问服务器实现上传、下载文件功能,采用Visual Studio 2013开发工具执行FTP客户端程序编写,并运行于Windows 7操作系统中。

3.2 FTP客户端与FTP服务器互联测试

选用网络上流行的一款Xlight FTP Server作为FTP服务器来对此FTP客户端程序进行测试。

客户端与服务器建立连接,输入用户名密码进行验证,普通用户以及匿名用户皆能登陆成功。并且成功通过客户端实现文件的上传与下载功能,其网络传输性能得到了保证。

4 结语

FTP客户端程序具有一定的稳定性,在运行过程中,可实现信息提示、异常处理、错误返回,发生错误时系统仍然可以保持其它功能的正常运行,不至于失去响应。FTP客户端程序主要实现了文件上传、下载功能,并在一定程度上提高了文件传输性能,增强了计算机文件网络安全性。

参考文献:

[1] 姚雄.一种类FTP的文件传输共享系统研究[D].武汉:华中科技大学,2005.

[2] 李大红.浅析内网FTP服务器的架设[J].中国会议, 2010(12):5255.

[3] 王占军,王伟等著.基于FTP协议的文件传输组件设计与实现[J].沈阳师范大学学报, 2012(7):13.

[4] 蔡勇.FTP服务技术研究及实现[D].成都:电子科技大学,2005.

[5] 李杰.Linux环境下FTP系统的设计与实现[D].长春:吉林大学,2012.

[6] 戴浩.基于FTP的文件定时传输软件的设计与实现 [J].计算机应用与软件, 2013(1):15.

责任编辑(责任编辑:陈福时)