MFC—Internet 编程

Internet 编程

  • Internet 编程分为ieInternet 客户端程序和 Internet 服务器程序,为简化开发步骤,MFC 提供 WinInet 技术支持 Internet 客户端程序,提供 ISAPI 拓展支持创建 Internet 服务器应用程序,同时提供了 MAPI 编程技术,支持通过 E-mail 发送文档。

一、WinInet 编程

  • WinInet 编程技术提供对编写使用 Internet 协议访问网络数据源的应用程序的支持;WinInet 中还提供了对 Gopher 协议、FTP 协议和 HTTP协议的支持

1、WinInet API 概述

  • WinInet API 提供了抽象底层协议的高层接口,使得较为容易地创建访问标准 Internet 协议的独立的应用程序。
  • MFC 封装的 Internet 扩展使用一组标准的、易于使用的类实现;可以通过直接调用 Win32 函数或使用 MFC 的 WinInet 类编写 WinInet 客户端应用程序。
  • WinInet API 函数如下表:
    WinInet API 函数功能
    InternetAttemptConnect()此函数用于在执行查询时请求前第一次建立连接。客户端程序使用此函数可以调用建立拨号对话框。如果此函数失败,则应用程序进入脱机模式
    InternetCheckConnection()使用此函数检测是否可以建立到指定 URL 的连接
    InternetCloseHandle()关闭 Internet 句柄
    InternetConfirmZoneCrossing()检测原来的 URL 与新 URL 之间是否发生改变,如果两个 URL 之间发生安全性改变,应用程序会发送改变通知用户,通常是显示对话框
    InternetConnect()打开一个到 FTP、Gopher 或 HTTP 站点的会话
    InternetErrorDlg()显示错误对话框
    InternetFindNextFile()查找下一个 FTP 文件或 Gopher 文件
    InternetGetLastResponseInfo()获取最近一次的 Internet() 函数发生的错误描述或服务器返回的响应信息
    InternetLockRequestFile()锁定使用的数据
    InternetOpen()初始化 Win32 的 Internet() 函数
    InternetQueryDataAvailable()查询使用数据条目
    InternetQueryOption()查询指定 Internet 句柄的选项
    InternetReadFile()从使用 InternetOpenUrl()、FtpOpenFile()、GopherOpenfile() 或 HttpOpenReauest() 函数打开的句柄读取数据
    InternetReadFileEx()从使用 InternetOpenUrl()、FtpOpenFile()、GopherOpenfile() 或 HttpOpenReauest() 函数打开的句柄读取数据
    InternetSetFilePointer()设置 InternetReadFile() 函数的文件位置
    InternetSetOption()设置 Internet 选项
    InternetSetOptionEx()设置 Internet 选项
    InternetSetStatusCallback()设置执行 Internet() 函数执行操作时的回调函数
    InternetTimeFormSystemTime()按指定的 RFC 格式格式化时间和日期
    InternetTimeToSystemTime()获取 HTTP 返回的日期/时间字符串,并将其转化为 SYSTEMTIME 结构
    InternetUnlockRequestFile()解锁使用的文件
    InternetWriteFile()写数据到打开的 Internet 文件

2、WinInet 常用类概览

  • MFC 封装了如下表所示的类和全局函数用于支持 Internet 客户端应用程序的编写。
    类名功能
    CInternetSession此类用于创建和初始化单个或几个同步的 Internet 会话,还提供连接到代理服务器的信息。如果创建的 Internet 连接在整个应用程序中有效,则可以在应用程序类中创建此变量的对象。可以调用此类的 OpenURL() 函数打开 URL。SetCookie() 成员函数、GetCookie() 成员函数和 GetCookieLength() 成员函数提供管理 cookie 的功能。此类是编写 WinInet 程序的第一步
    CInternetConnection此类用于管理到 Internet 服务器的连接,是 CFtpConnection 类、CHttpConnection 类和 CGopherConnection 类的基类;这三个类在此类的基础上分别提供处理FTP、HTTP 和 GOPHER 服务器的附加功能的函数。要直接与 Internet 服务器进行通信,则必须有一个 CInternetSession 对象和一个 CInternetConnection 对象
    CFtpConnection此类提供管理与 FTP 网络服务器的连接,也提供直接操作服务器上的目录和文件的功能。要与 FTP 网络服务器进行通信,则首先需要一个 CInternetSession 实例,再创建 CFtpConnection 对象。当创建 CFtpConnection 对象时,必须使用 CInternetSession 类的 GetFtpConnection() 函数,创建一个 CFtpConnection 对象,并返回创建的指针。
    CGopherConnection此类用于管理与 GOPHER 网络服务器的连接,与 GOPHER 服务器进行通信,需首先创建一个 CInternetSession 实例和创建一个 CGopherConnection 对象,在创建 CGopherConnection 对象时,必须使用 CInternetSession 类的 GetGopherConnection() 函数,创建对象并返回创建的指针。此类包含构造函数和三个成员函数管理 Gopher 服务,OpenFile() 函数用于打开文件,CreateLocation() 函数用于创建定位器,GetAttribute() 函数用于获取属性
    CHttpConnection此类用于管理与 HTTP 服务器的连接,与 HTTP 服务器进行通信,需首先创建一个 CInternetSession 实例和创建一个 CHttpConnection 对象,在创建 CHttpConnection 对象时,必须使用 CInternetSession 类的 GetHttpConnection() 函数,创建对象并返回创建的指针。此类的 OpenRwquest() 函数用于管理使用 HTTP 协议到服务器的连接
    CInternetFile此类是 CHttpFile 类和 CgopherFile 类的基类。这两个类允许使用网络协议访问远程计算机上的文件。当创建 CInternetFile 对象时,必须通过 CGopherConnection 对象的 OpenFile() 函数、CHttpConnection 对象的 OpenRequest() 函数或 CFtpConnection 对象的 OpenFile() 函数创建。此类具有 Open() 函数、LockRange() 函数。UnlockRange() 函数和 Duplicate() 函数,这四个函数是虚函数,继承类需要重载这几个函数。
    CGopherFile此类提供在 Gopher 服务器上查找和读取文件的功能。Gopher 服务器不支持向 Gopher 文件写入数据,因为此服务函数主要使用菜单接口查找信息,因此此类不支持 Write() 函数、WriteString() 函数和 Flush() 函数。
    CHttpFile此类提供在 HTTP 服务器上请求和读取文件的功能,如果程序中的 Internet 会话要从 HTTP 服务器上读取数据,则必须创建 CHttpFile 实例
    CFileFind此类用于完成本地文件的查找,是 CGopherFileFind 类和 CFtpFileFind 类的基类,这两个类是完成 Internet 文件的查找功能的类。次来包含开始查询、定位文件、返回标题和返回文件名等函数。对于 Internet 文件查找,GetFileURL() 成员函数返回文件的 URL。没有实现在 HTTP 服务器上进行查找的类,因为 HTTP 服务器不支持文件查找
    CFtpFileFind此类实现在 FTP 服务器上进行 Internet 文件查找。包括开始查找、定位文件和获取 URL 或有关文件的其他描述信息的函数
    CGopherFileFind此类实现在 Gopher 服务器上进行 Internet 文件的查找。包括开始查找、定位文件和获取 URL 的函数
    CGopherLocator此类从 Gopher 服务器上获取 Gopher “定位符”,确定定为符类型,并构造可以用在 CGopherFileFind 类中的定位符格式。应用程序在从 Gopher 服务器上接收信息前,必须首先获取 Gopher 服务器的定位符。Gopher 定位符中有属性可以确定查找到的服务器或文件的类型。通常应用程序在 CGopherFileFind::FindFile 文件中使用定位符获取指定类型的信息
    CInternetException此对象表示与 Internet 操作连接的异常情况。此类包含两个成员,一个与异常相关的错误代码,一个是存放与错误相连的 Internet 应用程序的上下文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御承扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值