- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC网络编程 CAsyncSocket、Csocket类 MFC提供的Winsock类 直接使用WinSock API编程(前面讲的编程方式): 需要了解用它进行网络编程的框架, 还要涉及复杂的消息驱动机制, 要自己设计处理套接口发送数据和接收数据的事件函数。 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类: CAsyncSocket类 CSocket类 CAsyncSocket类 基于异步模式 CAsyncSocket类,在很低的层次上对Windows Sockets API进行了封装。 它的成员函数和WinSock API的函数调用直接对应。 一个CAsyncSocket对象代表了一个Windows套接字。它是网络通信的端点。 该类将根据不同的Windows套接字消息调用CAsyncSocket类的回调函数。 如果熟悉网络通信细节,仍希望充分利用WinSock API编程的灵活性,并能安全地控制程序,同时还希望利用Windows对网络事件通知的回调函数的便利,就应该使用CAsyncSocket类进行编程。 必须自己处理阻塞问题、字节顺序问题和字符串转换问题。 继承关系 CAsyncSocket类从Cobject类派生而来。 Csocket类从CAsyncSocket派生而来 在MFC中,CAsyncSocket,CSocket类 在afxSock.h中定义 源代码在sockcore.cpp中 头文件 新建支持套接字的工程 套接字支持做了什么? Stdafx.h #include afxsock.h CXXXAPP.CPP BOOL CTestASYNCApp::InitInstance() { if (!AfxSocketInit()) {AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } …… 新建套接字类 选择菜单“插入/新建类”,进入“New Class”对话框,如图6.12所示。 重写事件 使用类向导(点菜单View/ClassWizard) 右键菜单 图6.13 为套接字类添加响应消息的事件处理成员函数 调用自己的套接字类 引用头文件: 一般在CXXXDLg.cpp中引用 定义模块级变量: CmySock m_servS; CmySock * m_servS; 创建套接字实例 (1)如:CAsyncSocket aa; aa.Create(…); 这种方式,直接定义了CAsyncSocket类的变量。编译时,会隐式地调用该类的构造函数。在堆栈上创建该类对象实例。 使用对象实例变量调用该类的成员变量或成员函数时,要用.操作符。 (2)如: CAsyncSocket* Pa; Pa = new CAsyncSocket; Pa-Create(…); 这种方式,先定义异步套接口类型的指针变量,再显式调用该类的构造函数。在堆上创建该类对象实例,并将指向该对象实例的指针返回给套接口指针变量。 使用对象实例指针变量调用该类成员时,要用-操作符。 create Create()函数的调用格式为: BOOL Create( UINT nSocketPort = 0, Int nSocketType = SOCK_STREAM, Long Levent = FD_READ | FD_WRITE | FD_OOB FD_ACCEPT |FD_CONNECT | FD_CLOSE, LPCTSTR lpszSocketAddress = NULL ); 参数nSocketPort指定一个分配给套接口的端口号,默认值为0,说明由系统给该套接口分配一个端口号。 服务器程序应该明确地分配一个端口号( 熟知端口号) 。 客户程序中可以使用默认的0值。 CAsyncSocket类接受处理的消息事件 MFC框架对于六个网络事件的处理 在afxSock.h文件中的CAsyncSocket类的声明中,定义了与这六个网络事件对应的事件处理函数 virtual void OnReceive(int nErrorCode); 对应 FD_READ事件 virtual voi
您可能关注的文档
- _同课异构_网络教研模式的探究.pdf
- “国 家”的复习.doc
- “您就是我们的‘校长妈妈’”——南宁职业技术学院“校长有约 共话南职”活动第十二期举行.doc
- “祛希望化”教育研究:症候及其批判.pdf
- [精品]音标发音明细.doc
- 《考研英语复习23问23答》第三版(2014年4月26日).pdf
- 《小标点,大不同》微课视频创作说明.pdf
- _经典_的属性及价值.pdf
- 《在庆祝中国共产党成立90周年大会上的讲话》的层次转换和语词特色.pdf
- 【2013-2014-2学期】17-20周马区期末考试安排(完整版).xls
- 《小熊过桥》中班标准教案.pptx
- 《老旧小区改造过程中历史文化保护与功能提升的协同策略分析》教学研究课题报告.docx
- 数字化平台在高中物理探究式学习中的资源整合与教学效果研究教学研究课题报告.docx
- 《绿色供应链管理在制造业企业中的实施效果与绿色制造产业链协同研究》教学研究课题报告.docx
- 初中生物理实验操作与安全知识培训教学研究课题报告.docx
- 高中化学教师教学画像构建与教学创新实践案例分析教学研究课题报告.docx
- 品牌设计策略与实施路径.pptx
- 小学科学教学中科技制作活动的设计与实施效果分析教学研究课题报告.docx
- 品牌设计方案策划.pptx
- 品管圈口腔护理合格率提升实践.pptx
最近下载
- GB 44022-2024硝酸铵安全技术规范解读.pptx VIP
- 在线网课学习课堂《人工智能与生物特征识别(北理 )》单元测试考核答案.pdf VIP
- Unit 5 Is this your pen (说课稿)-2024-2025学年湘少版(三起)(2024)英语三年级上册.docx VIP
- 《基坑工程》重力式水泥土墙.pptx VIP
- 人工智能导论知到课后答案智慧树章节测试答案2025年春浙江师范大学.docx VIP
- 2024年饮品店项目创业投资方案.docx
- 生命的律动答案.docx
- 300T汽车吊性能说明书-XCA300_1全地面起重机技术规格书+[主臂风电臂加超起].pdf VIP
- 导尿管相关尿路感染预防与控制课件.pptx VIP
- 历史的天空2015全图文攻略.pdf VIP
文档评论(0)