《互联网构软件编程技术第6章-2》由会员分享,可在线阅读,更多相关《互联网构软件编程技术第6章-2(20页珍藏版)》请在金锄头文库上搜索。
1、互联网构软件编程技术互联网构软件编程技术网构软件分析与设计网构软件分析与设计Analysis and Design of Internet SoftwareFTPFTP协议实现程序协议实现程序协议实现程序协议实现程序概述概述概述概述FTP协议是协议是Internet上最为典型的应用层协议之一。通过本章课程训练,学习网络服务系统设计与开发方法,设计相应的应用层协议的基本工作模型,完成应用层协议与网络应用软件设计方法,为掌握网络应用软件设计、开发技术打下基础上最为典型的应用层协议之一。通过本章课程训练,学习网络服务系统设计与开发方法,设计相应的应用层协议的基本工作模型,完成应用层协议与网络应用软件
2、设计方法,为掌握网络应用软件设计、开发技术打下基础提纲提纲提纲提纲?编程训练目的编程训练目的?编程训练要求编程训练要求?相关知识介绍相关知识介绍?程序设计分析程序设计分析?扩展与提高扩展与提高编程训练目的编程训练目的编程训练目的编程训练目的?了解了解FTP协议通信过程协议通信过程?理解理解Windows下下Socket编程技巧以及各种编程技巧以及各种I/O模型的特点和优势模型的特点和优势?掌握掌握Windows下高性能服务器的程序架构和开发方法下高性能服务器的程序架构和开发方法提纲提纲提纲提纲?编程训练目的编程训练目的?编程训练要求编程训练要求?相关知识介绍相关知识介绍?程序设计分析程序设计分
3、析?扩展与提高扩展与提高编程编程编程编程训练要求训练要求训练要求训练要求编写程序,实现一个编写程序,实现一个FTP服务器,要求:服务器,要求: 工作在工作在Windows平台下平台下 支持文件和文件夹的上传和下载支持文件和文件夹的上传和下载 支持多用户,多线程并发下载支持多用户,多线程并发下载 要求程序稳定高效,并输出适当调试信息显示当前程序运行状态要求程序稳定高效,并输出适当调试信息显示当前程序运行状态 界面风格不做统一规定,要求文档明晰,代码风格规范界面风格不做统一规定,要求文档明晰,代码风格规范提纲提纲提纲提纲?编程训练目的编程训练目的?编程训练要求编程训练要求?相关知识介绍相关知识介绍
4、?程序设计分析程序设计分析?扩展与提高扩展与提高FTPFTP协议简介协议简介协议简介协议简介 应用背景应用背景 协议规范协议规范 各类命令含义各类命令含义提纲提纲提纲提纲?编程训练目的编程训练目的?编程训练要求编程训练要求?相关知识介绍相关知识介绍?程序设计分析程序设计分析?扩展与提高扩展与提高主函数流程主函数流程?初始化初始化?创建完成端口创建完成端口?创建工作者线程并与完成端口关联创建工作者线程并与完成端口关联?创建创建Socket?Accept?发送欢迎消息发送欢迎消息工作者线程工作者线程调用GetQueuedCompletionStatus是否成功调用GetQueuedCompleti
5、onStatus是否成功错误产生是否由多线程下载文件引起错误产生是否由多线程下载文件引起通告客户端多线程传输完毕通告客户端多线程传输完毕输出错误输出错误本次循环结束,继续下轮循环本次循环结束,继续下轮循环是否客户端主动关闭接是否客户端主动关闭接判断连接类型判断连接类型解析本次解析本次IO产生原因产生原因通过数据连接发送数据通过数据连接发送数据通过数据连接接受数据通过数据连接接受数据判断完成本次判断完成本次IO后所需的工作后所需的工作在控制连接等待用户输入在控制连接等待用户输入放弃当前通过数据连接传输的数据放弃当前通过数据连接传输的数据判断数据是否全部发送完成判断数据是否全部发送完成继续发送未发
6、完数据继续发送未发完数据处理接受到的用户命令处理接受到的用户命令退出线程退出线程解析本次解析本次IO产生原因产生原因通过控制连接通告客户端发送数据完成通过控制连接通告客户端发送数据完成是否接受客户端全部上传数据完成是否接受客户端全部上传数据完成继续发送数据继续发送数据通过控制连接通告客户端上传的数据接受完成通过控制连接通告客户端上传的数据接受完成发送客户端通知发送客户端通知本次循环开始本次循环开始NNNNNYYYYYToReceiveToAbortToReceiveToAbortDoNothingToReceiveDataToSendDataControlIoSendControlIoRecv
7、IoQuitDataIoTransPacket控制连接数据连接ToReceiveDataToSendDataControlIoSendControlIoRecvIoQuitDataIoTransPacket控制连接数据连接工作者线程工作者线程?处理处理USER命令命令?处理处理PASV命令命令?处理处理LIST命令命令文件上传下载文件上传下载?相关相关FTP命令命令?系统系统API函数函数TransmitFile()的特点及优势的特点及优势提纲提纲提纲提纲?编程训练目的编程训练目的?编程训练要求编程训练要求?相关知识介绍相关知识介绍?程序设计分析程序设计分析?扩展与提高扩展与提高完成端口介绍完成端口介绍 完成端口原理完成端口原理 完成端口优势完成端口优势Windows其他其他IO模型简介模型简介 Select模型:模型: 兼容兼容Socket 1.1 UNIX标准标准Windows其他其他IO模型简介模型简介 WSAAsynSelect : 消息模式通知消息模式通知 不适合一次传输大量数据不适合一次传输大量数据Windows其他其他IO模型简介模型简介 WSAEventSelect: 事件通知事件通知Windows其他其他IO模型简介模型简介 重叠端口:重叠端口: 事件对象通知事件对象通知 完成例程通知完成例程通知