实验7WSAeventselectWINSOCKIO模型程序设计.docxVIP

  • 11
  • 0
  • 约1.4千字
  • 约 7页
  • 2020-11-08 发布于江苏
  • 举报

实验7WSAeventselectWINSOCKIO模型程序设计.docx

实验 7 WSAeventselectWINSOCK I/O 模型程序设计 一.实验目的 通过这次实验, 要掌握 Winsock 提供了另一个有用的异步 I/O 模 型 WSAeventselect WINSOCIK/O 模型。和 WSAAsyncSelect模型类似 的是,它也允许应用程序在一个或多个套接字上, 接收以事件为基础 的网络事件通知。由 WSAAsyncSelect模型采用的网络事件来说,它 们均可原封不动地移植到新模型。 在用新模型开发的应用程序中, 也 能接收和处理所有那些事件。 该模型最主要的差别在于网络事件会投 递至一个事件对象句柄,而非投递 至一个窗口例程。由于 WSAeventselect WINSOCK I/O模型单线程只能处理 64 个套接字,要 处理大量客户 I/O 请求,可采用线程池技术来实现。 二.实验环境 操作系统: Microsoft Windows 7 专业版 64 位 开发软件: Visual C++ 开发语言: C 三.实验原理 WSAEventSelect 提供了另 一种异步事件通知 模型。和是 WSAAsyncSelect 模型类似的是,它也允许应用程序在一个或多个套 接字上,接收以事件为基础的网络事件通知。由 WSAAsyncSelect模 型采用的网络事件来说, 它们均可原封不动地移植到新模型。 在用新 模型开发的应用程序中, 也能接受和出力所有那些事件。 该模型最主 要的差别在于网络事件会投递一个时间对象句柄, 而非投递一个窗口 例程。 四.实验方法及步骤 1. 程序设计步骤 (1)初始化 Winsock 库 (2)创建套接字 (3)绑定套接字 (4)监听 (5)创建事件对象,并关联到新的套接字 (6)处理事件对象 1). 在所有事件对象上等待 2). 获取到来的通知消息 3). 添加到表中 4). 接收到数据 2. 程序流程图 开始 WSAEventSelect 失败 WSAWaitForMultipleEv ents WSAEnumNetwortEvents 失败 ... ... FD_ACCEPT FD_WRITE FD_READ 成功 成功 I/O操作 开始 WSAEventSelect 失败 WSAWaitForMultipleEv ents WSAEnumNetwortEvents 失败 ... ... FD_ACCEPT FD_WRITE FD_READ 成功 成功 I/O操作 开始 WSAEventSelect 失败 WSAWaitForMultipleEv ents WSAEnumNetwortEvents 失败 ... ... FD_ACCEPT FD_WRITE FD_READ 成功 成功 I/O操作 开始 WSAEventSelect 失败 WSAWaitForMultipleEv ents WSAEnumNetwortEvents 失败 ... ... FD_ACCEPT FD_WRITE FD_READ 成功 成功 I/O操作 开始 WSAEventSelect 失败 WSAWaitForMultipleEv ents WSAEnumNetwortEvents 失败 ... ... FD_ACCEPT FD_WRITE FD_READ 成功 成功 I/O操作

文档评论(0)

1亿VIP精品文档

相关文档