第6章CAsyncSocket类应用实例.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章CAsyncSocket类应用实例

6.4 CAsyncSocket类的应用实例 6.4.1 实现目标 应用实例是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天的字符串内容,并在窗口的列表框中显示。 ;实例程序的技术要点是: 如何从CAsyncSocket类派生出自己的WinSock类。 理解WinSock类与应用程序框架的关系。 重点学习流式套接字对象的使用。 处理网络事件的方法。 ;6.4.2 创建客户端应用程序 1.使用MFC AppWizard创建客户端应用程序框架。 (1)在New对话框中,选择Projects卡,如图6.4所示。从左边的列表框中选择MFC AppWizard(exe)条目,在右边的Project Name处填入工程名Talkc,在Location处选定存放此工程的目录。然后点击OK按钮。 ;(2)出现MFC AppWizard设置的第一步对话框(MFC AppWizard – Step 1),如图6.5所示。从中选择Dialog based的应用程序类型,语言支持选择中文(中国),使此工程能够正确地进行中文的输入、输出、显示及处理。然后点击NEXT按钮。 ;(3)出现MFC AppWizard设置的第二步对话框(MFC AppWizards – Step 2 of 4),如图6.6所示,在Windows Sockets复选框上打上选择标记,表示应用程序将支持WinSock套接字。接受其它的默认设置。跳过后面的步骤,直接点击Finsh按钮。 ;(4)出现新工程信息对话框(New Project Information),说明了所创建的骨架工程的有关信息。如图6.7所示。 ;2.为对话框界面添加控件对象 在创建了应用程序骨架之后,可以布置程序的主对话框。在MFC界面左方的工作区(workspace)中选择resourceView卡,从中选择Dialog,双击IDD_TALKC_DIALOG,右边会出现对话框,左边会出现控件面板,利用控件面板可以方便地在程序的主对话框界面中添加相应的可视控件对象,如图6.8所示。 ;图5-8 在主对话框中添加控件 ;完成的对话框如图6.9所示,然后按照表5-2修改控件的属性。 ;控件类型 ;3.为对话框中的控件对象定义相应的成员变量 在窗口菜单中点查看/建立类向导,进入类向导(Class Wizard)对话框,如图6.10。 ;选择成员变量卡(Member Variables),用类向导为对话框中的控件对象定义相应的成员变量。确认Class Name是CTalkcDlg,在左边的列表框中选择一个控件,然后点“Add Variable”按钮,会弹出”Add Member Variable”对话框,如图6.11所示,然后按照表6.3输入即可。 ;表6.3 客户端程序对话框中的控件对象对应的成员变量 ;4.创建从CAsyncSocket类继承的派生类 (1)为了能够捕获并响应socket事件,应创建用户自己的套接字类,它应当从CAsyncSocket类派生,还能将套接字事件传递给对话框,以便执行用户自己的事件处理函数。选择菜单“插入/新建类”,进入“New Class”对话框,如图6.12所示。 ;选择或输入以下信息: Class Type:选择MFC Class Class Infoumation下的Name: 输入CMySocket Class Infoumation下的Base class:选择CAsyncSocket 点击“OK”按钮,系统会自动生成CMySocket类对应的包含文件MySocket.h和MySocket.cpp文件,在VC界面的Class View中就可以看到这个类。 ;(2)利用类向导ClassWizard为这个套接字类添加响应消息的事件处理成员函数。点菜单View/ClassWizard...,进入类向导对话框,选择Message Maps(消息映射)卡,确认Class name是CMySocket,从Messages(消息)栏中选择事件消息,然后点击Add Function按钮,就会看到在Member Function栏中添加了相应的事件处理函数。如图6.13所示,此程序中需要添加OnConnect,OnClose和OnReceive三个函数。这一步会在CMySocket类的MySocket.h中自动生成这些函数的声明,在MySocket.cpp中生成这些函数的框架,以及消息映射的相关代码。可参看后面的程序清单。 ;图6.13 为套接字类添加响应消息的事件处理成员函数 ;(3)为套接字类添加一般的成员函数和成员变量 在VC++的界面中,在

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档