FTP客户端的设计与实现

  • 格式:doc
  • 大小:1023.50 KB
  • 文档页数:19

毕业教学环节成果(2016 届)题目FTP客户端的设计与实现系部电子信息系专业计算机网络技术班级1301学号201331150520117姓名王洁指导教师曹为刚浙江科贸职业技术学院(筹)毕业教学成果目录摘要 (2)Abstract (2)1 FTP协议分析 (4)1.1 FTP的工作原理 (4)1.2 FTP的工作模式 (4)1.2.1 PORT模式 (4)1.2.2 PASV模式 (5)1.3 FTP的命令与响应 (6)2 FTP协议总体设计 (8)2.1 设计要求以及工具 (8)2.2 客户端主要模块设计 (8)2.2.1 客户端功能模块 (8)2.2.2 客户端界面设计 (8)2.3 数据流程图 (9)2.4 主要功能与实现 (12)3 系统测试 (13)3.1 系统可能出现的问题与不足 (13)3.2 测试的过程与结果分析 (13)结论与致谢 (16)参考文献 (18)浅谈FTP客户端程序设计计算机网络技术专业王洁摘要:FTP是Internet上用来传输文件的协议,它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。

通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。

本文以实现一个简易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP数据传输原理,研究如何使用Visual C++6.0编程软件对FTP客户端进行设计。

选择工程中的MFC AppWizard来实现FTP客户端的链接服务器下载文件等主要功能。

关键词:FTP协议工作原理文件下载Research on the problems and Strategies of the construction of……Major of Computer Network, Department of electronic and information Zhejiang Vocational College of Science and Trade (preparatory) WangJie Abstract:FTP is the Internet protocol used to transfer files, it is for us to each other on the Internet file transfer for file transfer standard, specifies how to transfer files on the Internet. Through the FTP protocol, with the Internet we can upload or download files the FTP server. In this paper, in order to achieve a simple and easy to use FTP client as the goal, through the analysis of the basic working principle of the FTP protocol and FTP data transfer principle,Study how to use Visual c + + 6.0 programming software to design of FTP client。

Select the MFC AppWizard to implement in engineering main functions such as FTP client server link to download files.Keywords: FTPprotocol work mode File download引言FTP服务在网络上已经是一种广泛使用的服务了,它是建立在FTP协议上的用于网络环境下进行文件传输的一种文件传输系统,几乎可以传输各种类型的文件,如文本文件、声音文件、图像文件等,这个文件传输系统由服务器端程序和客户端程序共同组成,客户端程序提供用户操作的界面并完成文件的上传和下载。

在众多的网络应用中,FTP有着非常重要的地位,在Internet 中一个十分重要的就是资源,而各种各样的资源大多数都是放在FTP 服务器中的,为了获得这些资源,我们必须使用FTP客户端软件。

如今网络上有许多FTP客户端类的软件,但是由于其界面复杂,操作繁琐,不被大多数用户接受,为了更好的利用网络资源,方便用户使用FTP,我设计了一种简便易用的FTP客户端。

本文首先分析了FTP协议,FTP的工作原理等,然后介绍了如何使用C++软件来设计和实现一个简单的FTP客户端。

使用本FTP 客户端,可以使用户轻松的下载指定的文件。

1FTP协议分析1.1FTP的工作原理FTP服务是一种面向链接的文件传输服务,采用的传输层协议是TCP协议。

FTP服务的基本工作过程是:建立链接、传输数据与释放链接。

由于FTP服务的特点是数据量大、控制信息相对较少。

因此,FTP对控制信息与传输的数据分开进行处理,进而在FTP中用于通信的TCP命令与相应信息,完成链接建立、身份认证与异常处理等控制操作;数据链接用于在通信双方之间传输文件或目录信息。

FTP工作原理如图1.2FTP的工作模式FTP支持两种工作模式,一种方式叫做Standard(也就是PORT方式,又叫主动方式),一种是Passive(也就是PASV,又叫被动方式)。

在Standard模式下,FTP的客户端发送Port命令到FTP服务器;在Passive模式下,FTP的客户端发送PASV命令到FTP服务器。

FTP的两种工作模式的工作原理分别介绍如下1.2.1PORT模式FTP客户端用临时TCP端口首先和FTP服务器的21号TCP端口建立链接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。

PORT命令包含了客户端用什么端口接收数据。

在传送数据的时候,服务器端通过自己的20号TCP端口链接至客户端的指定端口发送数据。

也就是说FTP 服务器与客户机之间在正常工作时需要两个链接。

工作原理如图2所示1.2.2PASV模式在建立控制通道的时候和Standard模式类似,但建立链接后发送的不是Port命令,而是Pasv命令。

FTP服务器收到Pasv命令后,随机打开一个高端端口X(该端口号大于1024),通知客户端服务器要在X端口与客户机传送数据,并要求客户端链接FTP服务器X端口,原理如图3所示。

1.3FTP的命令与响应(1) FTP命令FTP是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX/Linux、Windows操作系统下使用FTP,都会遇到大量的FTP命令。

FTP命令由命令名和参数两部分构成。

为阐述FTP客户端程序设计的方便,Visual C++6.0中使用的主要FTP命令见下表所列命令名参数描述ABOR 中断数据链接程序ACCT <account> 系统特权账号ALLO <bytes> 为服务器上的文件存储器分配字节APPE <filename> 添加文件到服务器同名文件CDUP <dir path> 改变服务器上的父目录CWD <dire path> 改变服务器上的工作目录DELE <filename> 删除服务器上的指定文件HELP <command> 返回指定命令信息LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表MODE <mode> 传输模式MKD <directory> 在服务器上建立指定目录NLST <directory> 列出指定目录内容NOOP 无动作,除了来自服务器上的承认PASS <password> 系统登录密码PASV 请求服务器等待数据链接PORT <address> IP 地址和两字节的端口IDPWD 显示当前工作目录QUIT 从FTP服务器上退出登录REIN 重新初始化登录状态链接REST <offset> 从特定偏移量重启文件传递RETR <filename> 从服务器上找回(复制)文件RMD <directory> 在服务器上删除指定目录RNFR <old path> 对旧路径重命名RNTO <new path> 对新路径重命名SITE <params> 由服务器提供的站点特殊参数SMNT <pathname> 挂载指定文件结构STAT <directory> 在当前程序或目录上返回信息STOR <filename> 储存(复制)文件到服务器上STOU <filename> 储存文件到服务器上STRU <type> 数据结构SYST 返回服务器使用的操作系统TYPE <data type> 数据类型USER <username> 系统登录的用户名(2)FTP响应标准的FTP响应代码及其描述见下表110 新文件指示器上的重启标记211 系统状态回复120 服务器准备就绪的时间212 目录状态回复125 打开数据链接,开始传输213 文件状态回复150 打开链接214 帮助信息回复200 成功215 系统类型回复202 命令没有执行220 服务就绪221 退出网络451 遇到本地错误225 打开数据链接452 磁盘空间不足226 结束数据链接500 无效命令227 进入被动模式501 错误参数230 登录Internet 502 命令没有执行250 文件行为完成503 错误指令序列257 路径名建立504 无效命令参数331 要求密码530 未登录网络332 要求账号532 存储文件需要账号350 文件行为暂停550 文件不可用421 服务关闭551 不知道的页类型425 无法打开数据链接552 超过存储分配426 结束链接553 文件名不允许450 文件不可用2FTP协议总体设计2.1设计要求以及工具(1)此设计实现的程序为图形化界面,输入的FTP服务器信息包括IP地址、用户名与密码,输入交互过程中的FTP命令与响应信息,以及从FTP服务器的根目录获得的文件(或目录)列表。

(2)遵循RFC959的相关FTP协议规定。

只要求实现USER,PASS,PASV,LIST和QUIT命令。