- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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中
您可能关注的文档
- LED显示屏控制卡分类.doc
- LED显示屏控制软件LED控制软件操作手册.doc
- LH露涵睦雨全系列护肤品介绍.doc
- LinuxUnix企业应用 (2).doc
- Linux操作系统考试卷.doc
- lolLPL春季赛EP强势轮子妈击败LGD.doc
- Lwgdkq股指期货宣传小手册.doc
- MACOSX上安装Windows全攻略.doc
- MARPOL7378附则VI港口国检查备忘录.doc
- maya菜单栏中文介绍.doc
- 专题02+时事热点(精讲课件)2025年中考地理二轮复习讲练测(安徽专用).pptx
- 专题10+经济建设 2025年中考道德与法治二轮复习讲练测(广东专用).pptx
- 专题02+西游记【名著概览】+-+2025年中考语文必读名著演练.pptx
- 专题七+认识国家(课件)-【省心备考】2025年中考地理一轮复习优质课件.pptx
- 第22课《礼记》二则——《大道之行也》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 跨学科实践15:制作“龙骨水车”(课件)-2024-2025学年八年级物理下学期项目化课程案例.pptx
- 第13课_辽宋夏金元时期的对外交流(课件)2024-2025学年七年级历史下册同步教学课件.pptx
- 选择题专项讲解——综合类(课件)2025年初中道德与法治中考选择题练习.pptx
- 第21课《庄子》二则——《北冥有鱼》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 7.3+感受澳大利亚(第二课时)-2025学年七年级地理下册同步精品课堂(晋教版2024).pptx
文档评论(0)