网站大量收购独家精品文档,联系QQ:2885784924

windows坏境下面向套接字编程实例.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内容预览 VC++环境下WinSock编程及实例分析 王振江 (华北电力大学,河北保定 071003)   ??? 摘 要:Visual C++对网络应用程序开发的支持是十分强大和充分的。为了简化WinSock网络编程,Microsoft的基本类库(Microsoft Foundation Class或MFC)提供了两种利用Windows Sockets进行网络通信的编程模式,这两种模式即为用CAsyncSocket类和派生于CAsyncSocket的CSocket类来编程。通过创建一个比较简单的基于MFC WinSock类的应用程序,详细分析了WinSock编程。 ??? 关键词:WinSock;网络;CSocket     最近几年,计算机网络的发展一日千里,人们对网络服务应用程序的要求也越来越高、越来越多。现在虽然有很多的网络应用程序,但是在很多的情况下,需要开发适合自己使用的网络应用程序。   Microsoft公司的Visual C++平台是一个具有高度综合性的软件开发工具,它不仅具有很强的程序处理能力,而且还能提供多种的编程风格;与Visual C++捆绑的MFC(Microsoft Foundation Class)提供了大量的封装良好的类,使用户在使用Visual C++时有如虎添翼的感觉。Visual C++对网络应用程序开发的支持是十分强大和充分的。 1 WinSock编程原理   直接采用WinSock API函数来编程对于初学者很不轻松,不但要记忆很多的WinSock API函数的调用格式,还要了解设计WinSock网络编程的算法。对于编写Windows应用程序来说,还要涉及复杂的消息驱动机制,涉及事件处理函数来处理套接字发送、接收数据等事件。   为了简化WinSock网络编程,使用户专注于应用程序算法的设计,Microsoft的基本类库(MicrosoftFoundation Class或MFC)提供了两种利用WindowsSockets进行网络通信的编程模式,这两种模式即为用CAsyncSocket类和派生于CAsyncSocket的CSocket 类来编程。这两个类在不同程度上对WinSock API的函数进行了封装,在编程时使用经过封装的MFCWinSock类使编程工作大大简化,而且,这两个类都提供了事件处理函数,通过对事件处理函数进行重载,用户可以在应用程序中很方便地对套接字发送、接收数据等事件进行处理。   CAsyncSocket类封装了Windows Sockets API函数,提供了较低层的与Windows Sockets对话接口,一般适合于有相当水平的网络编程基础者使用,可方便地进行底层的网络事件通知及信息回叫控制等操作。 CAsyncSocket类是从CObject类派生而来的,派生关系如图1所示。   CSocket派生于CAsyncSocket,派生关系如图2所示。它继承了父类中一些常用易懂的Windows Sock-ets API函数,并对CAsyncSocket中底层的较难控制的一些API函数或成员函数进行了处理,它通过MFCCArchive对象进行信息的接发操作,使得网络传输如同使用MFC的文档连载协议(Serialization protocol),简捷易用。同时它支持模块化的后台信息处理,解决了CAsyncSocket中较难克服的多线程处理。 2 实例分析   下面通过一个客户机/服务器模式的网络应用程序,实现对CSocket类的派生和应用。 2.1 利用MFCAppWizard生成程序框架   建立基于对话框构架的应用程序,填写工程名为Chat。在第2步中选中Windows Socket复选框,接受其他默认的MFCAppWizard设置。 2.2 增加控件对象 ??? 向主对话框添加控件。   该应用程序是客户机/服务器一体的,因此设置了组合框(Combo Box)控件来指定应用程序是作为客户机还是服务器而运行;还需要一组编辑框(EditBox)用于输入计算机的名称和服务器侦听的端口号,以及一个用于启动应用程序对socket的侦听,或打开与服务器连接的按钮(Button)控件。为了输入字符串及显示发送的字符串,需要一个编辑框控件,用来输入要发送的消息,以及用于发送此消息的按钮控件;还需要一对列表框控件,用于显示发送和接收的消息。   在MFCClassWizard中,将对话框中的控件和变量相关联,如表2所示。 2.3 添加消息映射函数 ??? 为了区分应用程序是用于服务器还是客户机,用户在选择组合框内容后,“连接”按 钮随用户的选择而改变。用对组合框选区内容改变的事件—CBN—SELCHANGE—产生消息映射函数。在MFC ClassWizard中

您可能关注的文档

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档