- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6-WSAAsyncSelect模型课件
WSASsyncSelect模型 前面学习的Windows Sockets select模型。在应用程序中调用select()函数时,会发生阻塞现象。开发人员可以通过select()函数的timeout参数,设置函数调用的阻塞时间,在设定时间内,线程保持等待,直到其中的一个或者多个套接字满足可读或者可写的条件,该函数才返回。 WSAAsyncSelect模型是非阻塞的。如图所示,Windows Sockets 应用程序在调用recv()函数接收数据前,调用WSAAsyncselect()函数注册网络事件。WSAAsyncselect()函数立即返回,线程继续运行。当系统中数据准备好时,向应用程序发送消息。应用程序接收到这个消息后,调用recv()函数接收数据。 与select模型比较 WSAAsyncSelect模型与Select模型的相同点: 都可以对Windows套接字应用程序所使用的多个套接字进行有效的管理。 WSAAsyncSeelect模型与Select模型相比存在以下不同: WSAAsyncSelet模型是异步的。在应用程序中调用WSAAsyncSelect()函数,通知系统感兴趣的网络事件,该函数立即返回,应用程序继续运行。 发生网络事件时,应用程序得到通知的方式不同。Select()函数返回时,说明某个或者某些套接字满足可读可写的条件,应用程序需要使用FD_ISSET宏,判断套接字是否存在于可读可写集合中。而对于WSAAsyncSelect模型来说,当网络事件发生时,系统向应用程序发送消息。 WSAAsyncSelect模型应用在基于消息的Windows环境下,使用该模型时必须创建窗口。而Slelect模型广泛应用在Unix系统和Windows系统,使用模型不需要创建窗口。 应用程序中调用WSAAsyncSelect()函数后,自动将套接字设置为非阻塞模式。而应用程序中调用select()函数后,并不能改变该套接字的工作方式。 套接字WSAAsyncSelect模型实现 WSAAsyncSelect模型核心是WSAAsyncSelect()函数,该函数使得Windows应用程序能够接收网络事件消息。在应用程序窗口例程中对接收到的网络事件进行处理。 由于WSAAsyncSelect模型应用在基于消息的Windows应用程序中,所以本节还将讲解窗口例程和如何创建窗口等内容。 WSAAsynSelect()函数 int WSAAsyncSelect( SOCKET s, HWND hWnd, unsigned int wMsg, long lEvent ) s:需要事件通知的套接字。 hWnd: 当网络事件发生时接收消息的窗口句柄。 wWsg: 当网络事件发生时窗口收到的消息。 lEvent:应用程序感兴趣的网络事件集合。 应当用程序中调用该函数后,自动将套接字设置为非阻塞模式。 通常,应用程序声明的消息要比Windows的WM_USER值大,以避免该消息与Windows预定消息发生混淆。 注册哪种网络事件,取决于实际的需要。如果应用程序同时对多个网络事件感兴趣。需要对网络事件类型执行按位OR(或)运算。然后将它们分配给lEvent参数。 例如,应用程序希望在套接字上接收有关连接完成、数据可读和套接字关闭的网络事件。那么在应用程序中,调用WSAAsyncSelect()函数如下所示: WSAAsyncSelect(s, hWnd,WM_SOCKET, FD_CONNECT|FD_READ|FD_CLOSE); 当该套接字连接完成、有数据可读或者套接字关闭的网络事件事件发生时,就会有WM_SOCKET消息发送给窗口句柄为hWnd窗口。 窗口例程 当调用WSAAsyncselect()函数后,应用程序会在hWnd窗口例程,以消息形式接收网络事件通知。窗口例程是回调函数,当成功创建窗口后由系统调用。窗口例程声明如下: LRESULT CALLBACK WindowProc( HWND hWnd, //窗口句柄 UINT uMsg, //消息 WPARAM wParam, //消息参数 LPARAM lParam, //消息参数 ); hWnd:窗口句柄。 uMsg消息。对Windows Sockets应用程序来说感兴趣的是在 WSAAsyncSelect()函数中,由应用程序定义的消息。 wParam:消息参数。在 Windows Sockets应用程序中,该参数指明发生网络事件的套接字。 lParam: 消息参数。在 Windows sockets 应用程序中,该参数低字节指
您可能关注的文档
- 407小组网络安全课作业PPT课件.ppt
- 41电子(第23章可编程逻辑器件PLD,CPLD)T46课件.ppt
- 400V站用系统课件.ppt
- 493 华信惠悦 资产负债模型(Asset Liability Model)课件.ppt
- 4930G 刷BIOS & 恢复出厂SN、UUID激活Vista详细图文教程课件.ppt
- 423摊铺机介绍课件.ppt
- 44240_0_如何设计年度培训计划与预算方案课件.ppt
- 48种导购技巧,48个对话场景,培增业绩!课件.ppt
- 42岩石强度理论课件.ppt
- 4A免费策划:面霸120沟通策略课件.ppt
- 基于文化差异的高中AI教育平台语言支持体系构建与教学实践教学研究课题报告.docx
- 顺德九年级考试试卷及答案.doc
- 8 《中医食疗在慢性肾病治疗中的营养干预策略与患者康复进程观察》教学研究课题报告.docx
- 初中物理教学创新实践案例库构建:基于教师教学画像的实证研究教学研究课题报告.docx
- 人工智能视角下的高中物理实验学习分析结果可视化呈现方法研究教学研究课题报告.docx
- 淮安九年级考试试卷及答案.doc
- 数字化教学资源在高中英语课堂中提升学生投入度的策略研究教学研究课题报告.docx
- 初中生体育课程兴趣激发与教学实践案例分析教学研究课题报告.docx
- 基于人工智能的初中历史知识迁移策略与教学实践教学研究课题报告.docx
- 《膝关节骨关节炎康复治疗中艾灸与康复理疗的协同作用及护理管理研究》教学研究课题报告.docx
最近下载
- 并网光伏电站项目工程现场电气二次施工方案.doc
- 英语新课标背景下:非纸笔测试在小学英语期末评价中的实践研究.pdf VIP
- 液体伤口敷料产品技术要求标准2023版.docx VIP
- 股市实战绝技汇总篇(精华).doc VIP
- 历年行情的十大牛股.doc VIP
- 安徽省六校联考暨安徽六校教育研究会2026届高三入学素质检测-物理试卷答案.docx VIP
- 基于Ansys CFX的风扇叶片双向流固耦合分析.docx VIP
- (高清版)DB1307∕T 334-2020 蛋鸡无抗养殖技术规范.pdf VIP
- 中小学教育班班通系统校级解决方案.doc VIP
- 涉税检举奖励制度的运行问题...于68份裁判文书的考察分析_金超.pdf VIP
文档评论(0)