第6章高级网络编程.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章高级网络编程

Windows网络程序设计 第6章 高级网络编程 6.1 MFC概述 MFC(Microsoft foundation Classes)是微软公司提供的用于C++程序设计的基础类库,它由两部分组成:一部分是通常所说的C++类训,是MFC类库的主体部分;另一部分是MFC预定义宏、全局变量和全局函数,是MFC类库的辅助部分。 MFC类库中定义的类主要有以下几种: (1)根类(CObject):CObject实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持等等。 (2)命令发送类(CCmdTarget):CCmdTarget通过封装了用户通过菜单或工具栏向应用程序发送命令的界面,提供了消息处理的架构。它是应用程序结构类和窗口类的基类。 (3)应用程序结构类。提供了应用程序的所有通用功能,它们构成了windows应用程序的主要框架。应用程序类主要有以下几种: 应用程序线程支持类:CWinThread类是所有线程类的基类,封装了操作应用程序的多线程功能。CWinApp是CWinThread的派生类,它封装了基于MFC的Windows应用程序的初始化、运行及终止等功能。CWinApp的全局对象控制着整个应用程序的流程。 文档类。文档类封装了应用程序的数据管理,文档类对象由文档模板创建。CDocument类是文档类的基类,它支持一些标准的操作,如新建文档,打开文档和存储文档等。 文档模板类。文档模板类将文档、视图及边框窗口相互联系起来,在创建新文档或视图时协调文档、视图及边框窗口的创建。CMultiDoctemplate为多文档接口提供了模板。CSingleDocTemplate为单文档接口提供了模板。 (4)窗口类。包括边框窗口类、视图类、对话框类、控件类、控件栏类和属簿类,它们的共同之处是都封装了一个窗口句柄HWND,都是从CWnd派生的。 (5)常用工具类,如用于绘图的类、数组类等。 (6)非派生自CObject的类,如用于Internet服务程序设计的API。 MFC对编程的强大支持功能是通过以下几点实现的: (1) MFC封装了Win32 API、OLE API、ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。 (2) MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理等。框架或者由其本身处理事件而不依赖程序员的代码,或者调用程序员的代码来处理应用程序特定的事件。 (3) MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的的。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。 MFC中与网络程序设计有关的类有: (1)文件服务类: CSocketFile,派生自CFile类,用于将需要序列化的数据如一些结构体数据、对象等传给对方。 (2)Internet服务器API类 与HTTP有关的类,CHemlStream、CHttpFilter、CHttpFilterContext、CHttpServer和CHttpServerContext。 (3) Internet服务类 与Internet会话有关的CInternetSession,与Internet连接有关的CinternetConnection(CFtpconnection、CGopherconnection、CHttpConnection),与查找文件有关的CFileFind(CFtpFilefind,CGopherFilefind) (4)Windows套接口类 MFC中定义了一个Windows套接口程序设计类CAsyncsocket,还定义了一个派生于CAsyncsocket的CSocket类。 6.2 MFC Socket类网络编程 6.2.1 CAsyncSocket类 CAsyncSocket类派生自CObject类,利用它可以方便地处理有关网络行为的通知消息。CAsyncSocket封装了低层的WinSock API,它在原有的WinSock函数的基础上提供了一些面向对象的特性,如连接、接收事件。CAsyncSocket类所提供的唯一的抽象就是将与套接字相联系的Windows消息以回调函数的形式表示。CAsyncSocket类是用于异步WinSock调用的一个包容类。 缺省情况下,使用该类创建的Socket是非阻塞的Socket,所有操作都会立即返回,如果没有得到结果,返回WSAEWOULDBLOCK,表示是一个阻塞操作。 CAsyncSocket有一个特殊的成员变量m_hSocket,用来保

文档评论(0)

didala + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档