网络编程实用教程第二版_第6章.pptVIP

  • 0
  • 0
  • 约3.2千字
  • 约 20页
  • 2019-09-10 发布于辽宁
  • 举报
第6章 WinInet编程 WinInet是Windows Internet扩展应用程序高级编程接口,是专为开发具有Internet功能的客户端应用程序而提供的。它有两种形式:WinInet API包含一个C语言的函数集(Win32 Internet functions),MFC WinInet类层次则是对前者的面向对象的封装。 6.1 MFC WinInet 类 6.1.1 概述 微软在MFC基础类库中提供了WinInet类,它是对于WinInet API函数的封装,是对所有的WinInet API函数按其应用类型进行分类和打包后,以面向对象的形式,向用户提供的一个更高层次上的更容易使用的编程接口。 利用MFC WinInet类来编写Internet应用程序还具有以下优点: (1)提供缓冲机制。 (2)支持安全机制。 (3)支持Web代理服务器访问。 (4)缓冲的输入/输出。 (5)轻松简洁。 6.1.2 MFC WinInet所包含的类 MFC WinInet类在Afxinet.h包含文件中定义,不同的类是对不同层次的HINTERNET句柄的封装:分为以下几种: 1.CInternetSession类 代表应用程序的一次Internet会话,它封装了HINTERNET会话根句柄,并把使用根句柄的API函数,如OpenURL、InternetConnect等,封装为它的成员函数。 2.连接类 包括CInternetConnection类和它的派生类CFtpConnection类、CHttpConnection类、和CGopherConnection类。 3.文件类 文件类首先包括CInternetFile类和由它派生的CHttpFile类和CGopherFile类, 另外,由CFileFind类派生的用于文件查找的CFtpFileFind类和CGopherFileFind类也应归入文件类的层次。 4.CInternetException类 CInternetException类代表MFC WinInet类的成员函数在执行时所发生的错误或异常。 图6.6 MFC WinInet 类的关系 6.1.3 使用WinInet类编程的一般步骤 (1)创建CInternetSession类对象,创建并初始化Internet会话。 (2)利用CInternetSession类的QueryOption或SetOption成员函数,可以查询或设置该类内含的Internet请求选项,这一步是可选。 (3)创建连接类对象,建立CInternetSession对象与网络服务器的连接,也就是应用程序与网络服务器的连接。 (4)创建文件检索类对象,对服务器进行检索 (5)如果需要使用异步操作模式,可以重载CInternetSession类的OnStatusCallback函数,并启动应用程序使用状态回调机制。重载相关函数,加入自己的代码。 (6)如果还想更紧密地控制对于服务器文件的访问,可以进一步创建文件类对象实例,完成文件查找或文件读写操作。 (7)创建CInternetException类对象实例,处理错误。 (8)关闭各种类,将资源释放给系统。 以下各小节按照编程步骤的顺序说明各种WinInet类的用法。 6.1.4 创建CInternetSession类对象 创建CInternetSession类对象,将创建并初始化Internet会话。像其它类一样,创建CInternetSession类对象需要执行该类的构造函数,它的原型是: CInternetSession( LPCTSTR pstrAgent = NULL, DWORD dwContext = 1, DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS, LPCTSTR pstrProxyName = NULL, LPCTSTR pstrProxyBypass = NULL, DWORD dwFlags = 0); 表6.1简要列出CInternetSession类的成员函数名称、它们的返回值类型和功能说明。这是对那些使用Internet会话根句柄的WinInet API的相关函数的封装。 6.1.5 查询或设置Internet请求选项 创建CInternetSession类对象后,可以调用它的QueryOption成员函数查询Internet请求选项,调用它的SetOption成员函数来设置这些选项。 6.1.6 创建连接类对象。 通过调用CInternetSession对象的GetFtpConnection、GetHttpConnection、GetGopherConnection成员函数,可以分

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档