实验 7 W SAe v en t s e lectWINSO C K I/O模型程序设计一、实验目得通过这次实验,要掌握 Winsock 提供了另一个有用得异步 I/O模型 W S Aev en tsel e ct WINSOCK I/O 模型。与WS AAsyn cSelec t模型类似得就是,它也允许应用程序在一个或多个套接字上,接收以事件为基础得网络事件通知。由 WSAA s yncSele c t 模型采纳得网络事件来说,它们均可原封不动地移植到新模型。在用新模型开发得应用程序中,也能接收与处理所有那些事件.该模型最主要得差别在于网络事件会投递至一个事件对象句柄,而非投递至一个窗口例程。由于 WS A ev e nts e lect WINSOC K I/O 模型单线程只能处理 64 个套接字,要处理大量客户 I/O 请求,可采纳线程池技术来实现。二、实验环境操作系统:Mi cro s oft W i ndows 7 专业版 64 位开发软件:Vis u al C++开发语言:C三、实验原理 W S AE v ent S elect 提供了另一种异步事件通知模型。与就是W S A As y n c Select 模型类似得就是,它也允许应用程序在一个或多个套接字上,接收以事件为基础得网络事件通知.由 W SAAsyn c Se l ect 模型采纳得网络事件来说,它们均可原封不动地移植到新模型。在用新模型开发得应用程序中,也能接受与出力所有那些事件。该模型最主要得差别在于网络事件会投递一个时间对象句柄,而非投递一个窗口例程。四、实验方法及步骤1、程序设计步骤(1)初始化 W i nsoc k库(2)创建套接字(3)绑定套接字(4)监听(5)创建事件对象,并关联到新得套接字(6)处理事件对象 ﻩ1)、在所有事件对象上等待 ﻩ2)、猎取到来得通知消息 3)、添加到表中 4)、接收到数据2.程序流程图3、关键源码得解析(1)in t nIn d e x = ::WSAWai t F o rM u lti p leEven t s(nEv en t T o t a l, eve n tArr a y, F A LS E, WSA_I N FINIT E, FAL SE);ﻩ// 对每个事件调用 WSAW a itForM ul tip l eEven ts函数,以便确定它得状态ﻩ nIndex = nIndex - W S A_WA IT_EVENT_0;ﻩf o r(int i=nIn de x; i〈nEvent T o t al; i++)ﻩ{ﻩﻩn I nd ex = ::WSAW a it F orMultip l eE ven ts(1, &eventA r r a y[i], TRUE, 1 ...