第4章-MFC套接字编程讲述.ppt

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

第4章 MFC套接字编程 杨 明 紫金学院计算机系 内容 MFC编程框架 CAsyncSocket类编程 CSocket类编程 MFC编程 MFC概述 MFC类库是C++类库,构成了MFC编程框架。 这些类分别封装了Win32应用程序编程接口、应用程序的概念、OLE特性、以及ODBC和DAO数据访问的功能。 MFC类具有继承关系,有虚拟函数和动态约束,并提供了MFC的开发模板。 MFC框架从总体上定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员只须通过预定义的接口把具体应用程序特有的东西填入这个轮廓,就能建立Windows下的应用程序。 典型的MFC应用程序的构成 MFC对象间的交互作用关系 MFC消息处理 消息映射 就是让程序员指定用来处理某个消息的某个MFC类 使用MFC提供的ClassWizard类向导,可以在处理消息的类中添加处理消息的成员函数,方便地实现消息映射。 在此基础上,程序员可将自己的代码添加到这些消息处理函数中,实现所希望的消息处理。 如果派生类要覆盖基类的消息处理函数,就用ClassWizard在派生类中添加一个消息映射条目,用同样的原型定义一个函数,然后实现该函数。 MFC的消息与映射处理 Windows消息 以前缀 “WM_”打头的消息,Windows消息直接被送给MFC的窗口过程处理,窗口过程再调用对应的消息处理函数。 控制通知消息,是控制子窗口送给父窗口的通知消息。窗口过程调用对应的消息处理函数。 命令消息,这是来自菜单、工具条按钮、加速键等用户接口对象的WM_COMMAND通知消息,属于应用程序自己定义的消息。 MFC消息映射的实现方法 程序员可以使用MFC的类向导ClassWizard来实现消息映射。类向导在源码中添加一些消息映射的内容,并声明和实现消息处理函数。 MFC WinSock类的编程 MFC WinSock类 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库MFC,提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,提供了两种编程模式。 CAsyncSocket类和CSocket类 CAsyncSocket类 特点 在很低的层次上对Windows Sockets API进行了封装 它的成员函数和Windows Sockets API的函数调用直接对应。 一个CAsyncSocket对象代表了一个Windows套接字。它是网络通信的端点。 除了把套接字封装成C++的面向对象的形式供程序员使用以外,这个类唯一所增加的抽象就是将那些与套接字相关的Windows消息变为CAsyncSocket类的回调函数。 CSocket类 特点 从CAsyncSocket类派生,是对Windows Sockets API的高级封装。CSocket类继承了CAsyncSocket类的许多成员函数,用法一致。 CSocket类的高级表现在三个方面: (1)CSocket结合archive类来使用套接字。 (2)CSocket管理了通信的许多方面,如字节顺序问题和字符串转换问题。 (3)CSocket类为Windows消息的后台处理提供了阻塞的工作模式。 六种套接字相关的事件与通知消息 当事件发生时,套接字对象会收到相应的通知消息,并自动执行套接字对象响应的事件处理函数。 FD_READ事件通知:通知有数据可读。 FD_WRITE事件通知:通知可以写数据。 FD_ACCEPT事件通知:通知监听套接字有连接请求可以接受。 FD_CONNECT事件通知:通知请求连接的套接字,连接的要求已被处理。 FD_CLOSE事件通知:通知套接字已关闭。 FD_OOB事件通知:通知将有带外数据到达。 套接字类的通知函数 CAsyncSocket类这六个网络事件对应的事件处理函数 virtual void OnReceive(int nErrorCode); 对应 FD_READ事件 virtual void OnSend(int nErrorCode); 对应 FD_WRITE事件 virtual void OnAccept(int nErrorCode); 对应 FD_ACCEPT事件 virtual void OnConnect(int nErrorCode);对应 FD_CONNECT事件 virtual void OnClose(int nErrorCode); 对应 FD_CLOSE事件 virtual void OnOutOfBandData(int nErrorCode); 对应 FD_OOB事件 重载套接字对象的回调函数 MFC框架自动调用通知函数,使得你可以在套接字被通知的时

文档评论(0)

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

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

1亿VIP精品文档

相关文档