FTP编程:Ftp服务器.ppt

上传人:wuy****n92 文档编号:70272369 上传时间:2023-01-18 格式:PPT 页数:36 大小:6.12MB
返回 下载 相关 举报
FTP编程:Ftp服务器.ppt_第1页
第1页 / 共36页
FTP编程:Ftp服务器.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《FTP编程:Ftp服务器.ppt》由会员分享,可在线阅读,更多相关《FTP编程:Ftp服务器.ppt(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、11.1 FTP协议协议原理原理11.2 Ftp服服务务器的器的实现实现11.3 完整的完整的FTP软软件套件件套件11.1.1 文件文件传输的主要功能传输的主要功能当前网络上绝大多数文件传输应用所遵循的FTP协议标准,是由RFC959定义的。在此RFC中,强调了文件传输应当实现的功能如下:提供文件(包括数据文件和程序文件)的共享。支持用户通过应用程序直接或间接使用远程计算机。提供一致性的协议,屏蔽各类计算机文件系统的差异。使用TCP确保可靠且有效的数据传输。下面以客户端要从FTP服务器上下载一个文件为例,说明FTP的完整交互过程,可用图11.1表示。1.主动模式主动模式该模式表示服务器主动连

2、接客户端,然后传输文件。2.被动模式被动模式该模式表示服务器被动接收客户端连接请求,即控制连接请求和数据连接请求都由客户端发起。(1)访问命令USER命令格式:USER 功能:指定登录的用户名,以便服务器进行身份验证。PASS命令格式:PASS 功能:指定用户口令,该命令必须跟在登录用户名命令之后。ACCT命令格式:ACCT 功能:指定用户账号。REIN命令格式:REIN功能:表示重新初始化用户信息。QUIT命令格式:QUIT功能:关闭与服务器的连接。(2)模式设置命令PASV命令格式:PASV功能:该命令告诉FTP服务器,让FTP服务器在指定的数据端口进行监听,进入被动接收请求的状态。POR

3、T命令格式:PORT功能:该命令告诉FTP服务器,客户端监听的端口号是address,让FTP服务器采用主动模式连接客户端。TYPE命令格式:TYPE功能:指定要传输的数据类型,有ASCII和BINARY。MODE命令格式:MODE功能:指定传输模式,S表示流,B表示块,C表示压缩。(3)文件管理命令CWD命令格式:CWD 功能:改变工作目录。PWD命令格式:PWD功能:返回当前工作目录。MKD命令格式:MKD 功能:在指定路径下创建新目录,参数为表示特定目录的字符串。CDUP命令格式:CDUP功能:回到上层目录。RMD命令格式:RMD功能:删除指定目录。参数为表示特定目录的字符串。LIST命

4、令格式:LIST功能:返回指定路径下的子目录及文件列表,省略时,返回当前路径下的文件列表。NLST命令格式:NLST 功能:返回指定路径下的目录列表,省略时,返回当前目录。RNFR命令格式:RNFR 功能:重新命名文件,该命令的下一条命令应该用RNTO指定新的文件名。RNTO命令格式:RNTO功能:该命令和RNFR命令共同完成对文件的重命名,紧跟在RNFR命令后。DELE命令格式:DELE功能:删除指定路径下的文件(4)文件传输命令RETR命令格式:RETR功能:请求服务器将指定路径内的文件复制到客户端,也即下载指定的文件。STOR命令格式:STOR功能:上传一个指定的文件,并将其存储在指定的

5、位置。(5)其他命令常用的其他命令有SYST命令,该命令没有参数,它返回服务器使用的操作系统。2.FTP响应码响应码3位数字每位都有特定的意义,详细内容见表11-1。应应 答答说说 明明第1位数字1yz表示信息已被服务器正确接受,但尚未被处理。2yz表示信息已被服务器正确处理完毕。3yz表示信息已被服务器正确接受,并正在处理中。4yz表示信息处理错误(暂时)。5yz表示信息处理错误(永久)。第2位数字x0z表示语法错误。x1z表示系统状态与信息。x2z表示与FTP服务器系统连接状态。x3z表示与用户认证有关的信息。x4z表示未定义。x5z表示与文件系统有关的信息。在实际使用时,只需要知道这3位

6、组合在一起表示什么意思就可以了。表11-2列出了部分响应码组合的意义。响响应码应码意意 义义响响应码应码意意 义义110重新启动标记应答332登录时需要账户信息120服务在指定时间内准备好350请求的文件操作需要进一步命令125数据连接打开开始传输421不能提供服务,关闭控制连接150文件状态良好,将要打开数据连接425不能打开数据连接200命令成功426关闭连接,终止传输202命令未实现450请求的文件操作未执行211系统状态或系统帮助响应451中止请求的操作:有本地错误212目录状态452为执行请求的操作:系统存储空间不足213文件状态500格式错误,命令不可识别214帮助信息,信息仅对用

7、户有用501语法错误215名字系统类型502命令未实现220对新用户的服务已就绪503命令顺序错误221服务关闭控制连接,可以退出登录504此参数下的命令功能未实现225数据连接打开,无传输正在进行530未登录226关闭数据连接,请求的文件操作成功532存储文件需要账户信息227进入被动模式550未执行请求的操作230用户已登录551请求操作终止:页类型未知250请求的文件操作完成552请求的文件操作终止,存储分配溢出257创建PATHNAME553未执行请求的操作:文件名不合法331用户名正确,需要口令(1)登录USER命令PASS命令ACCT命令(2)设置PORT命令PASV命令TYPE命

8、令(3)文件管理CWD命令PWD命令LIST、NLIST命令DELE命令(4)文件传输RETR命令STOR命令(5)退出11.2.1 界面界面设计设计本章的Ftp服务器仍然沿用上一章Web服务器的界面风格,设计如图11.2所示。软件工程名为“MyFtpServer”,程序界面上各控件的属性描述见表11-3所示。Name控件控件类类型型功能描述功能描述frmFtpServerForm程序主窗体listBoxStatusViewListBox服务状态监控区tbxFtpServerIpTextBox填写服务IP地址tbxFtpServerPortTextBox服务端口号(ftp默认为21)tbxFt

9、pRootTextBox设置填写ftp主目录btnStartStopButton服务【启动/停止】按钮线程ListTh是用来监听和处理客户端连接请求的,当一个请求被接受之后,服务器就专门为其另启一个线程t,该线程通过执行UserProcessing()方法来向用户提供FTP服务,其实现代码。1.用户身份确认用户身份确认每一个用户在使用FTP服务之前都必须先登录,进行身份确认后方可进一步操作。FTP身份确认的流程如图11.4所示。同时服务器要求用户输入登录账号,用户输入账号并按下Enter键后,客户端则传输“USER”的信息至FTP服务器,服务器调用CommandUser()方法对信息进行处理:

10、/处理 USER 命令,接收用户名但暂不进行验证private void CommandUser(User user,string command,string param)string sendString=string.Empty;if(command=USER)sendString=331 USER command OK,password required.;user.userName=param;user.LoginOK=1;/1 表示已接收到用户名,等待接收密码elsesendString=501 USER command syntax error.;ReplyCommandToUs

11、er(user,sendString);于是客户端程序传输“PASS”信息至服务器,服务器调用CommandPassword()方法验证用户名和密码。本程序在用户身份确认阶段,屏幕上的状态监控信息如图11.5所示。2.数据传输数据传输下面以下载文件为例来说明数据传输的过程,其流程如图11.6所示。客户端又是如何得知服务器开放的究竟是哪一个端口的呢?当然是服务器告诉它的。服务器在收到PASV命令后,调用CommandPASV()方法进行处理。程序运行时,屏幕上的状态监控信息如图11.7所示。3.结束结束FTP流程如图11.8所示。当数据传输结束后,如不需要再进行其他文件传输和操作,则FTP客户端

12、发送QUIT命令,要求结束FTP连接。FTP服务器端则发回响应信息,表示结束连接。if(command=QUIT)/关闭 TCP 连接并释放与其关联的所有资源mandSession.Close();return;上传下载器的改造上传下载器的改造打开已经做好了的FTP客户端(SelftpUpDownloader)项目工程,修改其代码。1.创建和访问本地创建和访问本地FTP站点站点在E:盘下新建文件夹MyFtpServerRoot,在其中创建目录结构并放置一些文件资源,如图11.9所示。一个本地FTP站点就创建好了。运行FTP服务器,可以看到服务器默认的主目录为“E:MyFtpServerRoot

13、”(正是我们刚刚创建的目录),见图11.10。运行经过改造后的FTP上传下载器SelftpUpDownloader,取消选择【匿名】复选框,输入用户名和密码(默认都是admin),单击【登录】,如图11.11所示。从服务器状态屏幕上可以看到当前默认的主目录为E:/MyFtpServerRoot/,见图11.12。2.通过通过FTP分享图片分享图片在创建的本地FTP站点上有两个文件夹(分别名为“王保兵”和“徐鹤鹤”),接下来就用这两个文件夹模拟两个用户来做实验,先在每个文件夹下建立各自的目录结构,如图11.13所示。在王保兵目录的“图片收藏”文件夹下,新建一个“美人鱼”文件夹,存入两张精美的人鱼

14、公主图片(图11.14)。初始时,徐鹤鹤的照片子文件夹中并没有东西(图11.15)。用鼠标双击任一个目录,就可以进入该文件夹的目录结构,比如进入王保兵的文件夹就可以看到里面有两张美人鱼图片(图11.16)。选中一张美人鱼图片,单击【下载】按钮,如图11.17所示。两张图片都下载下来之后,变更目录到徐鹤鹤的文件夹,进入其下的“照片”子文件夹,如图11.18。单击【上传】按钮,如图11.19。上传成功,FTP客户端当前文件夹下显示刚刚上传的图片资源,见图11.20。无论是从FTP客户端资源一览区,还是直接访问E盘FTP站点目录下徐鹤鹤的文件夹,都可以看到刚才上传的图片(图11.21),这表示上传确实成功了,由此就实现了在两个FTP用户之间互传资源的模拟过程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com