- 1、本文档共126页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲WinsockIO方法
基本概念 Windows是一种消息驱动的操作系统 Windows等待用户的动作(事件)以便作出反应, 所以也称为“事件驱动”的操作系统 什么是事件? eg:键盘输入某数据、点击file?save保存文件、点击 Exit按钮退出某程序….. 操作系统的每一部分与其他部分之间都可以通过消息进行通信 应用程序与操作系统之间的许多交互也通过消息完成 例如:针对某程序的键盘输入时, Windows系统向该程序发送输入消息, 该程序通过处理这个消息获得键盘输入的信息. 几个常用消息 单击鼠标左键产生消息 WM_LBUTTONDOWN 放开鼠标左键产生消息 WM_LBUTTONUP 单击鼠标右键产生消息 WM_RBUTTONDOWN 放开鼠标右键产生消息 WM_RBUTTONUP CreateWindows函数产生消息 WM_CREATE 关闭窗口产生消息 WM_CLOSE //0x0010 窗口、窗口句柄 一个windows应用程序,至少有一个窗口 利用窗口,windows应用程序可以和用户交互 例如:显示输出,接收输入…. 窗口、窗口句柄 Windows程序中,窗口通过 窗口句柄来标识 对窗口进行操作,必须得到该窗口的窗口句柄 Windows程序中的各种资源(窗口、光标、图标、画刷…)都有句柄,要操作必须获得句柄 句柄:一种标识号,系统在创建各种资源时,为它们分配内存,并返回标识这些资源的标识号 异步事件通知I/O模型 (WSAAsyncSelect模型) Select模型: 循环的去检查,看是否有数据 ... 接收/发送... 程序自己去看 WSAAsyncSelect模型: 别人(操作系统)来通知你 WSAAsyncSelect返回0;否则返回SOCKET_ERROR,这时可用WSAGetLastError来获取错误码.?事实上,成功发送一次消息,通知机制会暂停工作直到有重新激活消息通知机制到来.才可重新激活事件. 水平触发:FD_READ,FD_OOB和FD_ACCEPT 即重新激活,需要引发消息发送的条件.?边缘触发:FD_QOS,FD_GROUP_QOS等. void CXXXDlg::OnServerMsg(WPARAM wParam,LPARAM lParam){?????? SOCKET sock = (SOCKET) wParam;?????? if(WSAGETSELECTERROR(lParam)){???????????? ErrorProcess();???????????? return;}switch(WSAGETSELECTEVENT(lParam)){ case FD_READ:????????? ReadDate(sock);??? // 读数据并进行相应处理????????? break; case FD_CLOSE:????????? Finsish(sock);??????? //套接口关闭工作????????? break; default;????????? break;}} 其中函数会接受到两个参数wParam 和 lParam。wParam参数指明网络事件套接口,多个套接口指定同一个用户消息,那么就需要根据wParam判断到底是哪个套接口待处理。lParam参数包含两信息:低字指定发生网络事件,高字包含可能出现错误带代码。 在Windows sockets 应用程序中,当接收到网络事件消息时,在该函数内执行下面步骤 : (1) 读取lParam参数高字节,判断是否发生了一个网络错误事件。可以使用 WSAGETSELECTERROR宏。 (2) 如果应用程序发现套接字上没有发生任何错误,则读取Iparam低字节,检查到底是发生了什么网络事件。可以使用WSAGETSELECTEVENT宏。 WSAGETSELECTERROR和WSAGETSELECTEVENT宏声明如下: #define WSAGETSELECTEVENT(lParam) LOWORD(lParam) #define WSAGETSELECTERROR(lParam) HIWORD(lParam) WSAAsynSelect在MFC中使用流程 (1)使用#define语句定义套接口网络事件设置用户消息值,一般为WM_USER+N形式。(2)调用WSAAsynsSelect函数,为套接口设定网络事件-用户消息-消息接收窗体的对应关系。(3)在消息接收窗体的代码的消息映射模块中,加入ON_MESSAGE宏,设定用户消息的处理函数。(4)编写用户处理函数,该函数应该首先使
您可能关注的文档
- 第四章非金属及其化合物.ppt
- 第四章酸碱滴定法.ppt
- 第四章进给运动的控制.ppt
- 第四章风湿免疫性疾病康复.ppt
- 第四节地域文化与人口.ppt
- 第四章预防与控制医院感染.ppt
- 第四节撒哈拉以南非洲.ppt
- 第四课时 血液循环 苏科版初中生物.ppt
- 答辩.ppt
- 简易呼吸器的使用-2016新.ppt
- 中国国家标准 GB/T 45154-2024老龄化社会 年龄包容性劳动力通用要求与指南.pdf
- 《GB/T 45154-2024老龄化社会 年龄包容性劳动力通用要求与指南》.pdf
- 中国国家标准 GB/T 7019-2024纤维水泥制品试验方法.pdf
- GB/T 7019-2024纤维水泥制品试验方法.pdf
- GB/T 45150-2024老龄化社会 认知症包容性社群框架.pdf
- 中国国家标准 GB/T 25320.4-2024电力系统管理及其信息交换 数据和通信安全 第4部分:包含MMS的协议集及其附件.pdf
- 中国国家标准 GB/T 45150-2024老龄化社会 认知症包容性社群框架.pdf
- 《GB/T 25320.4-2024电力系统管理及其信息交换 数据和通信安全 第4部分:包含MMS的协议集及其附件》.pdf
- 《GB/Z 44938.1-2024机械电气安全 第1部分:用于保护人员安全的传感器》.pdf
- 中国国家标准 GB/T 21551.3-2024家用和类似用途电器的抗菌、除菌、净化功能 第3部分:空气净化器的特殊要求.pdf
最近下载
- JJF(闽) 1125-2022 土工布测厚仪校准规范.docx
- (已压缩)DeepSeek从入门到精通(20250204).pdf
- 高中化学思维导图_海水资源的开发利用.pdf VIP
- TGDAEM3-2022生态环境监测实验室器皿清洗技术规范.pdf
- 河南省2024年中考数学试卷(含答案).docx VIP
- 人教版数学四年级下册第2单元综合检测卷(含答案).doc VIP
- 全国教育科学规划课题申报书:61.《国家安全全民教育体系构建研究》 .pdf
- 中南大学2021-2022学年第1学期《高等数学(上)》期末考试试卷(B卷)及标准答案.pdf
- 2024年湖南石油化工职业技术学院单招职业技能测试题库及一套完整答案.docx VIP
- 全国与各省份地图(PPT模板可编辑颜色).ppt VIP
文档评论(0)