WSAEventSelect事件模型函数介绍
事件选择(WSAEventSelect)模型是另一个有用的异步I/O 模型。和WSAAsyncSelect 模型类似的是,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知,最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递到一个窗口例程。
1、WSACreateEvent( )
定义:WSAEVENT WSACreateEvent(void);
作用:事件通知模型要求我们的应用程序针对使用的每一个套接字,首先创建一个事件对象。该函数返回一个创建好的事件对象句柄。
注释:WSACreateEvent 创建的事件有两种工作状态,以及两种工作模式。工作状态分别是“已传信”(signaled)和“未传信”(nonsignaled)。工作模式则包括“人工重设”(manualreset)和“自动重设”(autoreset)。
WSACreateEvent开始是在一种未传信的工作状态,并用一种人工重设模式,来创建事件句柄。随着网络事件触发了与一个套接字关联在一起的事件对象,工作状态便会从“未传信”转变成“已传信”。由于事件对象是在一种人工重设模式中创建的,所以在完成了一个 I/O 请求的处理之后,我们的应用程序需要负责将工作状态从已传信更改为未传信,可调用 WSAResetEvent 函数。
BOOLWSAResetEvent(
__in WSAEVENT hEvent //事件句柄;
);
应用程序完成了对一个事件对象的处理后,便应调用WSACloseEvent函数,释放由事件句柄使用的系统资源。
BOOLWSACloseEvent(
__in WSAEVENT hEven