基于WinInet类的单线程FTP客户端程序设计精要.docVIP

基于WinInet类的单线程FTP客户端程序设计精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录 绪论 1 一、WinInet概述 1 1.1 什么是 WinInet 2 1.2 WinInet类及功能 2 二、FTP客户端设计 3 2.1 设计目的 3 2.2 功能描述 3 2.3 设计思路 3 2.3.1 查询功能设计 4 2.3.2 下载功能设计 4 2.3.3 上传功能设计 4 2.4 技术要点 4 三、FTP客户端的具体实现 5 3.1 创建应用程序 5 3.2 主要功能实现的代码和分析 7 3.2.1查询并显示FTP服务器的当前目录内容 7 3.2.2 实现文件下载功能 9 3.2.3 实现文件上传功能 11 四、测试 15 4.1界面实现 15 4.2测试FTP客户端基本功能 15 4.2.1客户端查询功能测试 16 4.2.2 客户端下载功能测试 16 4.2.3 客户端上传功能测试 17 五、设计小结 19 参考文献 20 绪论 WinInet是微软MFC类库提供的Win32Internet扩展接口,利用WinInet开发人员可以方便地编写出Internet客户端程序。本文主要阐述利用WinInet在VC 中实现FTP客户端程序的方法。相对于通常采用的IE浏览器,本FTP客户端程序更加安全可靠。 关键词:MFC;WinInet;FTP客户端程序;VC 一、WinInet概述 1.1 什么是 WinInet WinInet(“Windows Internet”)API帮助程序员使用三个常见的Internet协议,这三个协议是用于World Wide Web万维网的超文本传输协议(HTTP:Hypertext Transfer Protocol)、文件传输协议(FTP:File Transfer Protocol)和另一个称为Gopher的文件传输协议。WinInet函数的语法与常用的Win32 API函数的语法类似,这使得使用这些协议就像使用本地硬盘上的文件一样容易。目前visual c++ 6.0支持的网络编程有三种方式:一种是isapi,既基于网络服务器应用程序设计接口的程序一种是windowssocket2,即基于windows套接口编程还有一种便是wininet基于国际互连网客户端应用设计接口的程序。mfc把这些国际互连网方面的扩展内容封装到一系列标准的易于使用的类中。 1.2 WinInet类使用方法 MFC提供了以下编写互连网客户端应用的类库和全局函数: 用户可以通过wininet来做以下应用: WinInet类编程方法如下: 1.创建CInternetSession类对象,创建并初始化Internet会话。 2.建立CInternetSession对象与服务器的连接。该连接由CInternetConnect对象代表;可以通过CInternetSession::GetHttpConnection、CInternetSession::GetFTPConnection、CInternet::GetGopherConnection函数分别打开对应于三种特定协议的连接,它们分别由CInternetConnection的派生类CHttpConnection、CFtpConnection和CGopherConnection对象代表。 3.在连接时,可以通过调用CInternetSession::QueryOption或CInternetSession::SetOption函数查询或设置Internet请求选项。 4. 客户应用程序在进行某些操作时,要耗费相当长的时间,因此有必要向用户反馈当前数据处理的进程信息。这就需要派生自己的CInternetSession对象,重载OnStatusCallback函数实现回调程序的功能,并调用CInternetSession::EnableStatusCallback函数允许使用回调程序以监视会话的状态。 5.以上几个步骤建立了客户应用程序的工作环境,但它们并没有对服务器进行任何操作,必须在此基础上实现客户应用程序的实际功能。通常客户应用程序的主要功能是处理服务器的数据,因此应该获得服务器的CInternetFile实例,可以通过两种方法创建该实例: 1)分别调用CGopherConnection::OpenFile、CFtpConnection::OpenFile和CHttpConnection::OpenRequest函数得到CInternetFile、CGopherFile和CHttpFile对象指针,其中CGopherFile和CHttpFile是CInternetFile和派生类,对于FTP直接使用基类CInternetFile,此外CHttpConnection、CFtpConnection和CGopherConnection对象由步

文档评论(0)

LOVE爱 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5341224344000002

1亿VIP精品文档

相关文档