第十一章FTP编程:Ftp服务器.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11.1 FTP协议原理;11.1.1 文件传输的主要功能 当前网络上绝大多数文件传输应用所遵循的FTP协议标准,是由RFC959定义的。在此RFC中,强调了文件传输应当实现的功能如下: 提供文件(包括数据文件和程序文件)的共享。 支持用户通过应用程序直接或间接使用远程计算机。 提供一致性的协议,屏蔽各类计算机文件系统的差异。 使用TCP确保可靠且有效的数据传输。 ;下面以客户端要从FTP服务器上下载一个文件为例,说明FTP的完整交互过程,可用图11.1表示。 ;1. 主动模式 该模式表示服务器主动连接客户端,然后传输文件。 2. 被动模式 该模式表示服务器被动接收客户端连接请求,即控制连接请求和数据连接请求都由客户端发起。 ;(1) 访问命令 USER命令 格式:USER <username> 功能:指定登录的用户名,以便服务器进行身份验证。 PASS命令 格式:PASS <password> 功能:指定用户口令,该命令必须跟在登录用户名命令之后。 ACCT命令 格式:ACCT <account> 功能:指定用户账号。 REIN命令 格式:REIN 功能:表示重新初始化用户信息。 QUIT命令 格式:QUIT 功能:关闭与服务器的连接。 ;(2) 模式设置命令 PASV命令 格式:PASV 功能:该命令告诉FTP服务器,让FTP服务器在指定的数据端口进行监听,进入被动接收请求的状态。 PORT命令 格式:PORT<address> 功能:该命令告诉FTP服务器,客户端监听的端口号是address,让FTP服务器采用主动模式连接客户端。 TYPE命令 格式:TYPE<data type> 功能:指定要传输的数据类型,有ASCII和BINARY。 MODE命令 格式:MODE<mode> 功能:指定传输模式,S表示流,B表示块,C表示压缩。 ;(3) 文件管理命令 CWD命令 格式:CWD <directory> 功能:改变工作目录。 PWD命令 格式:PWD 功能:返回当前工作目录。 MKD命令 格式:MKD <directory> 功能:在指定路径下创建新目录,参数为表示特定目录的字符串。 CDUP命令 格式:CDUP 功能:回到上层目录。 RMD命令 格式:RMD<directory> 功能:删除指定目录。参数为表示特定目录的字符串。 ;LIST命令 格式:LIST<name> 功能:返回指定路径下的子目录及文件列表,省略<路径>时,返回当前路径下的文件列表。 NLST命令 格式:NLST <directory> 功能:返回指定路径下的目录列表,省略<路径>时,返回当前目录。 RNFR命令 格式:RNFR <old path> 功能:重新命名文件,该命令的下一条命令应该用RNTO指定新的文件名。 RNTO命令 格式:RNTO<new path> 功能:该命令和RNFR命令共同完成对文件的重命名,紧跟在RNFR命令后。 DELE命令 格式:DELE<filename> 功能:删除指定路径下的文件 ;(4) 文件传输命令 RETR命令 格式:RETR<filename> 功能:请求服务器将指定路径内的文件复制到客户端,也即下载指定的文件。 STOR命令 格式:STOR<filename> 功能:上传一个指定的文件,并将其存储在指定的位置。 (5) 其他命令 常用的其他命令有SYST命令,该命令没有参数,它返回服务器使用的操作系统。 ;2. FTP响应码 3位数字每位都有特定的意义,详细内容见表11-1。;在实际使用时,只需要知道这3位组合在一起表示什么意思就可以了。表11-2列出了部分响应码组合的意义。;(1) 登录 USER命令 PASS命令 ACCT命令 (2) 设置 PORT命令 PASV命令 TYPE命令 ;11.2.1 界面设计 本章的Ftp服务器仍然沿用上一章Web服务器的界面风格,设计如图11.2所示。 ;软件工程名为“MyFtpServer”,程序界面上各控件的属性描述见表11-3所示。;线程ListTh是用来监听和处理客户端连接请求的,当一个请求被接受之后,服务器就专门为其另启一个线程t,该线程通过执行UserProcessing( )方法来向用户提供FTP服务,其实现代码。 ;1. 用户身份确认 每一个用户在使用FTP服务之前都必须先登录,进行身份确认后方可进一步操作。FTP身份确认的流程如图11.4所示。 ;;于是客户端程序传输“PASS<password>”信息至服务器,服务器调用CommandPassword( )方法验证用户名和密码。 本程序在用户身份确认阶段,屏幕上的状态监控信息如图11.5所示。 ;2. 数据传输 下面以下载文件为例来说明数据传输的过程,其流程如图11.6所示。 ;客户端又是如何

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档