第14章开发 Internet应用程序 Internet应用程序的开发通常包括 Internet服务端和客户端的应用程序, Microsoft提供了大量的AP函数来支持这 两种程序,客户端应用程序主要通过 Internet协议(如 Gopher, FTp, htTp等)来从 网络服务器上获取数据,提供访问 InternetE功能,服务器端应用程序则用 来支持HTP、FTP或 Gopher等类型的服 务
1 第14章 开发Internet应用程序 Internet应用程序的开发通常包括 Internet服务端和客户端的应用程序, Microsoft提供了大量的API函数来支持这 两种程序,客户端应用程序主要通过 Internet协议(如Gopher,FTP,HTTP等)来从 网络服务器上获取数据,提供访问 Internet的功能,服务器端应用程序则用 来支持HTTP、FTP或Gopher等类型的服 务
141 ternet应用程序开发的几种类型 使用 WinInet类开发 Internet应用程序: WinInet类支持 HTP、FTP和 Gopher等标准的协议 使用 Windows socke开发 Interne应用程序: Winsock 标准定义了一个DLL接口来连接 EInternet,MFC使用 CAsyncSocket和 CSocket类对接口进行了封装。 使用消息收发 API(MAP: Message AP)开发 Internet应 用程序:使用MAPI可以很方便的向其他应用程序发 送电子邮件、语音邮件或传真等功能
2 14.1 Internet应用程序开发的几种类型 使用WinInet类开发Internet应用程序:WinInet类支持 HTTP、FTP和Gopher等标准的协议 使用Windows Socket开发Internet应用程序:Winsock 标准定义了一个DLL接口来连接Internet,MFC使用 CAsyncSocket和CSocket类对接口进行了封装。 使用消息收发API(MAPI:Message API) 开发Internet应 用程序:使用MAPI可以很方便的向其他应用程序发 送电子邮件、语音邮件或传真等功能
142 Winne开发简介 用 Winne开发程 序的优点 隐藏协议细节,简化编程:可不必深入了解协议,而 使用 Win Socket编程,需理解网络通信及协议基本原理 熟悉的编程接口: Winlnetap函数和很多WnAP函数很 相似,这对有编程经验的程序员来说是很方便的。 稳定性好,不要求程序与底层直接联系: WinInet隐藏 了协议的具体细节,使得程序不必直接使用各种协议 支持数据缓存: Wininet函数为所有的协议提供缓存 能力,程序员只需关心数据而不用去管理数据缓存 支持多线程:由于 WinInet函数在内部处理多线程的并 发问题,因此 WinInet函数支持多线程,在多线程中可 以调用各种 WinInet函数而不用担心发生问题或死锁
3 14.2 WinInet开发简介 用WinInet开发程 序的优点 隐藏协议细节,简化编程:可不必深入了解协议,而 使用WinSocket编程,需理解网络通信及协议基本原理 熟悉的编程接口:WinInet API函数和很多WinAPI函数很 相似,这对有编程经验的程序员来说是很方便的。 稳定性好,不要求程序与底层直接联系:WinInet隐藏 了协议的具体细节,使得程序不必直接使用各种协议 支持数据缓存:WinInet函数为所有的协议提供缓存 能力,程序员只需关心数据而不用去管理数据缓存 支持多线程:由于WinInet函数在内部处理多线程的并 发问题,因此WinInet函数支持多线程,在多线程中可 以调用各种WinInet函数而不用担心发生问题或死锁
143 Winne类介绍 WinInet类是一个总称,目前的版本中分为四组 CInternetsession类 CInternetconnection(连接类) CFilefind类( Internet文件查找类) CInternetFile类和 CGopherLocator类
4 14.3 WinInet类介绍 WinInet类是一个总称,目前的版本中分为四组 • CInternetSession类 • CInternetConnection (连接类) • CFileFind类(Internet文件查找类) • CInternetFile类和CGopherLocator类
14.3.1 CInternetSessione CInternetsession类直接继承自 Cobject类, 该类用来建立与某个 Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的 nternet连接必须保 持一段时间,则可以在 CWinApp类中创 建相应的 Clnternetsession成员
5 14.3.1 CInternetSession类 CInternetSession类直接继承自CObject类, 该类用来建立与某个Internet服务器的会 话。还可以向代理服务器描述连接,如 果应用程序所使用的Internet连接必须保 持一段时间,则可以在CWinApp类中创 建相应的CInternetSession成员
QueryOption 提供一个可能的错误检测判断 Setoption 设置 Internet会话的选项 OpenURL 设置URL,并对其进行分析 GetFtp Connection 打开一个FTP会话并进行连接 GethttpconNection 打开HTTP服务器并进行连接 GetGopher Connection打开 Gopher服务器并进行连接 Enablestatus callback建立异步操作的状态回调 ServiceTypeFromHandle通过 Internet句柄返回服务器类型 GetContext 获取 INternet和应用程序会话句柄 Close 关闭 I Internet连接 CInternetsession类 成员函数
6 QueryOption 提供一个可能的错误检测判断 SetOption 设置Internet会话的选项 OpenURL 设置URL,并对其进行分析 GetFtpConnection 打开一个FTP会话并进行连接 GetHttpConnection 打开HTTP服务器并进行连接 GetGopherConnection 打开Gopher服务器并进行连接 EnableStatusCallback 建立异步操作的状态回调 ServiceTypeFromHandle 通过Internet句柄返回服务器类型 GetContext 获取Internet和应用程序会话句柄 Close 关闭Internet连接 CInternetSession类 成员函数
14.3.2 CInternet Connection%K 包括 Clnternetconnection类及其派生类 ChttPconnection、 CFtpConnection和 CGopher Connection类, 这些类帮助用户管理与 Internet服务器的连接, 同时还提供一些函数完成和响应服务器的通 信
7 14.3.2 CInternetConnection类 包括CInternetConnection类及其派生类 CHttpConnection、CFtpConnection和 CGopherConnection类, 这些类帮助用户管理与Internet服务器的连接, 同时还提供一些函数完成和响应服务器的通 信
CInternetconnection:用于管理与 Internet服务器的连接 CFtpConnection:用于管理与FTP服务器的连接,可以 对服务器上的文件和目录进行直接操作 CGopherConnection:管理与 Gopher服务器的连接 ChttPconnection:管理与HTP服务器的连接 连接类及其 派生类
8 CInternetConnection:用于管理与Internet服务器的连接 CFtpConnection:用于管理与FTP服务器的连接,可以 对服务器上的文件和目录进行直接操作 CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接 连接类及其 派生类
14.33 CInternetFile类 包括 ClnternetFile类及其派生类 ChttPfile、 CGopherFile。这些类实现对远程系统上的文 件的存取工作。 文件类还包含 CFilefind类及其派生类 CFtpFileFind、 CGopherFileFind类。 CFileFind类 直接继承于 CObject类,这些类实现对本地和 远程系统上的文件的搜索和定位工作
9 14.3.3 CInternetFile类 包 括 CInternetFile 类 及 其 派 生 类 CHttpFile 、 CGopherFile。这些类实现对远程系统上的文 件的存取工作。 文 件 类 还 包 含 CFileFind 类 及 其 派 生 类 CFtpFileFind、CGopherFileFind类。CFileFind类 直接继承于CObject类,这些类实现对本地和 远程系统上的文件的搜索和定位工作
CInternetFile:允许对使用 Internet协议的远程系统中的 文件进行操作 CGopherFile:为在 Gopher服务器上进行文件检索和读取 操作提供支持 ChttPfile:提供对HTTP服务器上的文件进行操作的支持 CFindfile:文文件检索提供支持 CFtpFileFind:.为在FTP服务器上进行的文件检索操作提 供支持 CGopherFileFind:为在 Gopher服务器上进行的文件检索 操作提供支持 文件类说明
10 CInternetFile:允许对使用Internet协议的远程系统中的 文件进行操作 CGopherFile:为在Gopher服务器上进行文件检索和读取 操作提供支持 CHttpFile:提供对HTTP服务器上的文件进行操作的支持 CFindFile:文文件检索提供支持 CFtpFileFind:为在FTP服务器上进行的文件检索操作提 供支持 CGopherFileFind:为在Gopher服务器上进行的文件检索 操作提供支持 文件类说明