FTP编程:Ftp服务器.ppt

上传人:tia****nde 文档编号:12706541 上传时间:2020-05-14 格式:PPT 页数:36 大小:7.33MB
返回 下载 相关 举报
FTP编程:Ftp服务器.ppt_第1页
第1页 / 共36页
FTP编程:Ftp服务器.ppt_第2页
第2页 / 共36页
FTP编程:Ftp服务器.ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
第11章FTP编程:Ftp服务器,11.1FTP协议原理,11.2Ftp服务器的实现,11.3完整的FTP软件套件,11.1FTP协议原理,11.1.1文件传输的主要功能当前网络上绝大多数文件传输应用所遵循的FTP协议标准,是由RFC959定义的。在此RFC中,强调了文件传输应当实现的功能如下:提供文件(包括数据文件和程序文件)的共享。支持用户通过应用程序直接或间接使用远程计算机。提供一致性的协议,屏蔽各类计算机文件系统的差异。使用TCP确保可靠且有效的数据传输。,11.1.1文件传输的主要功能,下面以客户端要从FTP服务器上下载一个文件为例,说明FTP的完整交互过程,可用图11.1表示。,11.1.2文件传输模式,1.主动模式该模式表示服务器主动连接客户端,然后传输文件。2.被动模式该模式表示服务器被动接收客户端连接请求,即控制连接请求和数据连接请求都由客户端发起。,11.1.3FTP规范,(1)访问命令USER命令格式:USER功能:指定登录的用户名,以便服务器进行身份验证。PASS命令格式:PASS功能:指定用户口令,该命令必须跟在登录用户名命令之后。ACCT命令格式:ACCT功能:指定用户账号。REIN命令格式:REIN功能:表示重新初始化用户信息。QUIT命令格式:QUIT功能:关闭与服务器的连接。,11.1.3FTP规范,(2)模式设置命令PASV命令格式:PASV功能:该命令告诉FTP服务器,让FTP服务器在指定的数据端口进行监听,进入被动接收请求的状态。PORT命令格式:PORT功能:该命令告诉FTP服务器,客户端监听的端口号是address,让FTP服务器采用主动模式连接客户端。TYPE命令格式:TYPE功能:指定要传输的数据类型,有ASCII和BINARY。MODE命令格式:MODE功能:指定传输模式,S表示流,B表示块,C表示压缩。,11.1.3FTP规范,(3)文件管理命令CWD命令格式:CWD功能:改变工作目录。PWD命令格式:PWD功能:返回当前工作目录。MKD命令格式:MKD功能:在指定路径下创建新目录,参数为表示特定目录的字符串。CDUP命令格式:CDUP功能:回到上层目录。RMD命令格式:RMD功能:删除指定目录。参数为表示特定目录的字符串。,11.1.3FTP规范,LIST命令格式:LIST功能:返回指定路径下的子目录及文件列表,省略时,返回当前路径下的文件列表。NLST命令格式:NLST功能:返回指定路径下的目录列表,省略时,返回当前目录。RNFR命令格式:RNFR功能:重新命名文件,该命令的下一条命令应该用RNTO指定新的文件名。RNTO命令格式:RNTO功能:该命令和RNFR命令共同完成对文件的重命名,紧跟在RNFR命令后。DELE命令格式:DELE功能:删除指定路径下的文件,11.1.3FTP规范,(4)文件传输命令RETR命令格式:RETR功能:请求服务器将指定路径内的文件复制到客户端,也即下载指定的文件。STOR命令格式:STOR功能:上传一个指定的文件,并将其存储在指定的位置。(5)其他命令常用的其他命令有SYST命令,该命令没有参数,它返回服务器使用的操作系统。,11.1.3FTP规范,2.FTP响应码3位数字每位都有特定的意义,详细内容见表11-1。,11.1.3FTP规范,在实际使用时,只需要知道这3位组合在一起表示什么意思就可以了。表11-2列出了部分响应码组合的意义。,11.1.3FTP规范,(1)登录USER命令PASS命令ACCT命令(2)设置PORT命令PASV命令TYPE命令,(3)文件管理CWD命令PWD命令LIST、NLIST命令DELE命令(4)文件传输RETR命令STOR命令(5)退出,11.2Ftp服务器的实现,11.2.1界面设计本章的Ftp服务器仍然沿用上一章Web服务器的界面风格,设计如图11.2所示。,11.2.1界面设计,软件工程名为“MyFtpServer”,程序界面上各控件的属性描述见表11-3所示。,11.2.2FTP编程,线程ListTh是用来监听和处理客户端连接请求的,当一个请求被接受之后,服务器就专门为其另启一个线程t,该线程通过执行UserProcessing()方法来向用户提供FTP服务,其实现代码。,11.2.2FTP编程,1.用户身份确认每一个用户在使用FTP服务之前都必须先登录,进行身份确认后方可进一步操作。FTP身份确认的流程如图11.4所示。,11.2.2FTP编程,同时服务器要求用户输入登录账号,用户输入账号并按下Enter键后,客户端则传输“USER”的信息至FTP服务器,服务器调用CommandUser()方法对信息进行处理:/处理USER命令,接收用户名但暂不进行验证privatevoidCommandUser(Useruser,stringcommand,stringparam)stringsendString=string.Empty;if(command=USER)sendString=331USERcommandOK,passwordrequired.;user.userName=param;user.LoginOK=1;/1表示已接收到用户名,等待接收密码elsesendString=501USERcommandsyntaxerror.;ReplyCommandToUser(user,sendString);,11.2.2FTP编程,于是客户端程序传输“PASS”信息至服务器,服务器调用CommandPassword()方法验证用户名和密码。本程序在用户身份确认阶段,屏幕上的状态监控信息如图11.5所示。,11.2.2FTP编程,2.数据传输下面以下载文件为例来说明数据传输的过程,其流程如图11.6所示。,11.2.2FTP编程,客户端又是如何得知服务器开放的究竟是哪一个端口的呢?当然是服务器告诉它的。服务器在收到PASV命令后,调用CommandPASV()方法进行处理。程序运行时,屏幕上的状态监控信息如图11.7所示。,11.2.2FTP编程,3.结束FTP流程如图11.8所示。,11.2.2FTP编程,当数据传输结束后,如不需要再进行其他文件传输和操作,则FTP客户端发送QUIT命令,要求结束FTP连接。FTP服务器端则发回响应信息,表示结束连接。if(command=QUIT)/关闭TCP连接并释放与其关联的所有资源mandSession.Close();return;,11.3完整的FTP软件套件,11.3.1FTP上传下载器的改造打开已经做好了的FTP客户端(SelftpUpDownloader)项目工程,修改其代码。,11.3.2自制FTP客户端与服务器的对接实验,1.创建和访问本地FTP站点在E:盘下新建文件夹MyFtpServerRoot,在其中创建目录结构并放置一些文件资源,如图11.9所示。,11.3.2自制FTP客户端与服务器的对接实验,一个本地FTP站点就创建好了。运行FTP服务器,可以看到服务器默认的主目录为“E:MyFtpServerRoot”(正是我们刚刚创建的目录),见图11.10。,11.3.2自制FTP客户端与服务器的对接实验,运行经过改造后的FTP上传下载器SelftpUpDownloader,取消选择【匿名】复选框,输入用户名和密码(默认都是admin),单击【登录】,如图11.11所示。,11.3.2自制FTP客户端与服务器的对接实验,从服务器状态屏幕上可以看到当前默认的主目录为E:/MyFtpServerRoot/,见图11.12。,11.3.2自制FTP客户端与服务器的对接实验,2.通过FTP分享图片在创建的本地FTP站点上有两个文件夹(分别名为“王保兵”和“徐鹤鹤”),接下来就用这两个文件夹模拟两个用户来做实验,先在每个文件夹下建立各自的目录结构,如图11.13所示。,11.3.2自制FTP客户端与服务器的对接实验,在王保兵目录的“图片收藏”文件夹下,新建一个“美人鱼”文件夹,存入两张精美的人鱼公主图片(图11.14)。,11.3.2自制FTP客户端与服务器的对接实验,初始时,徐鹤鹤的照片子文件夹中并没有东西(图11.15)。,11.3.2自制FTP客户端与服务器的对接实验,用鼠标双击任一个目录,就可以进入该文件夹的目录结构,比如进入王保兵的文件夹就可以看到里面有两张美人鱼图片(图11.16)。,11.3.2自制FTP客户端与服务器的对接实验,选中一张美人鱼图片,单击【下载】按钮,如图11.17所示。,11.3.2自制FTP客户端与服务器的对接实验,两张图片都下载下来之后,变更目录到徐鹤鹤的文件夹,进入其下的“照片”子文件夹,如图11.18。,11.3.2自制FTP客户端与服务器的对接实验,单击【上传】按钮,如图11.19。,11.3.2自制FTP客户端与服务器的对接实验,上传成功,FTP客户端当前文件夹下显示刚刚上传的图片资源,见图11.20。,11.3.2自制FTP客户端与服务器的对接实验,无论是从FTP客户端资源一览区,还是直接访问E盘FTP站点目录下徐鹤鹤的文件夹,都可以看到刚才上传的图片(图11.21),这表示上传确实成功了,由此就实现了在两个FTP用户之间互传资源的模拟过程。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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