




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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表示已接收到用户名 等待接收密码 else sendString 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客户端与服务器的对接实验 单击 上传 按钮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年砌筑工职业技能鉴定试卷(施工信息化)
- 江阴职业技术学院《三笔技能》2024-2025学年第一学期期末试卷
- 开封大学《人工智能引论》2024-2025学年第一学期期末试卷
- 南方科技大学《现代生物仪器分析》2024-2025学年第一学期期末试卷
- 福州英华职业学院《实验室安全教育》2024-2025学年第一学期期末试卷
- 2025年初入互联网行业必-备技能面试预测题集
- 西北大学《平台应用开发》2024-2025学年第一学期期末试卷
- 2025年焊接作业常见问题解答与技巧
- 山东商务职业学院《JavaEEWeb技术开发实战》2024-2025学年第一学期期末试卷
- 湘潭大学兴湘学院《理论与训练(二)》2024-2025学年第一学期期末试卷
- 关节松动技术-上肢关节松动术(运动治疗技术)
- 2024CSCO肿瘤患者静脉血栓防治指南解读
- 供应商改善计划表
- DB11-T 1253-2022 地埋管地源热泵系统工程技术规范
- 2022年临沧市市级单位遴选(选调)考试试题及答案
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
- 中专宿舍管理制度和方法
- 心态决定-切模板课件
- 精神科常见病小讲课
- 屁屁辅助脚本
- 高效沟通提升医药代表拜访技巧的五大秘诀
评论
0/150
提交评论