欢迎来到天天文库
浏览记录
ID:40239105
大小:1.19 MB
页数:79页
时间:2019-07-28
《TCP_IP网络编程 任泰明 第10章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、人民邮电出版社第10章Winsock程序综合实例2021/10/510.1使用MFC类库设计网络程序10.1.1MFC类库简介MFC(MicrosoftFoundationClasses)是微软公司提供的用于C++程序设计的基础类库,它由两大部分组成:一部分是通常所说的C++类库,是MFC类库的主体部分,这些类构成了MFC应用程序框架;另一部分是MFC预定义宏、全局变量和全局函数,是MFC类库的辅助部分。这两部分都是用MFC进行Windows应用程序开发不可缺少的组成部分。第页10.1使用MFC类库设计网络程序MFC类库中定义的类主要有以下几种:(1)根类根类指CObject类,
2、它是大多数MFC类的最终基类,其他类都继承了CObject类的三个主要特征:在运行时识别对象所属的类。支持串行化,把对象存入文件中及从文件中读取对象。在运行时打印诊断信息。第页10.1使用MFC类库设计网络程序(2)命令发送类命令发送类CCmdTarget封装了用户通过选择菜单或工具栏按钮向应用程序发送命令的界面。命令发送类CCmdTarget派生自CObject根类,它是应用程序结构类和窗口类的基类。第页10.1使用MFC类库设计网络程序(3)应用程序结构类应用程序结构类(ApplicationArchitectureClass)提供了应用程序的几乎所有通用功能,它们构成了Wi
3、ndows应用程序的主要框架。我们通过这些类的派生类,添加新成员函数或重载现有成员函数以实现需要的功能,从而构造应用程序框架。应用程序类主要有:应用程序线程支持类:MFC支持多线程,所有的应用程序至少有一个线程。CWinThread类是所有线程类的基类,封装了操作应用程序的多线程功能。CWinApp是CWinThread类的派生类,它封装了基于MFC的Windows应用程序的初始化、运行及终止等功能。CWinApp的全局对象控制着整个应用程序的流程。第页10.1使用MFC类库设计网络程序文档类:文档类封装了应用程序的数据管理,文档类对象由文档模板创建。CDocument类是文档类
4、的基类,用户应用程序文档类可从CDocument类直接派生。CDocument类支持一些标准操作,如新建文档,打开文档和存储文档等。文档模板类:文档模板类将文档、视图及边框窗口相互联系起来,在创建新文档或视图时协调文档、视图及边框窗口的创建。CDocTemplate类是一个抽象基类,它为文档模板封装了基本功能,用户不能直接使用该类。CMultiDocTemplate为多文档接口(MDI)提供了模板。CSingleDocTemplate为单文档接口(SDI)提供模板。第页10.1使用MFC类库设计网络程序(4)窗口类窗口类包括边框窗口类、视图类、对话框类、控件类、控件栏类和属性簿类
5、,这些类的共同之处是都封装了一个窗口句柄HWND,都是从CWnd派生的。(5)常用工具类在MFC中还定义了大量的工具类,如用于绘图的类、数组类等。(6)非派生自CObject的类在MFC中有些类不是从CObject类派生的,如用于Internet服务程序设计的API(InternetServerAPI)等。第页10.1使用MFC类库设计网络程序10.1.2MFC中与网络程序设计有关的类在MFC类库中,与网络程序设计有关的类有以下几种:(1)文件服务类(FileServices)在有关文件服务类的定义中有一个CSocketFile类,其实它并不是用来在双方套接口上发送文件的,而是将
6、需要序列化的数据,比如一些结构体数据传给对方。要注意的是CSocketFile类虽然派生自CFile类,但它屏蔽掉了CFile::Open()等函数,也就是说不能调用CSocketFile的Open函数来打开一个实实在在的文件,否则会导致例外。第页10.1使用MFC类库设计网络程序10.1.2MFC中与网络程序设计有关的类(2)Internet服务器API类(InternetServerAPI)在Internet服务器API类中,主要定义了一些与HTTP协议有关的类,这些类是CHtmlStream、CHttpFilter、CHttpFilterContext、CHttpServe
7、r和CHttpServerContext。第页10.1使用MFC类库设计网络程序10.1.2MFC中与网络程序设计有关的类(3)Internet服务类(InternetServeices)Internet服务类中有与Internet会话有关的CInternetSession类,与Internet连接有关的CInternetConnection类,CInternetConnection有3个派生类,它们是CFtpConnection、CGopherConnection和CHttpC
此文档下载收益归作者所有