WSAEventSelect

WSAEventSelect模型是WindowsSockets提供的一個有用異步I/O模型。該模型允許在一個或者多個套接字上接收以事件為基礎的網路事件通知。Windows Sockets應用程式在創建套接字後,調用WSAEventSelect()函式,將一個事件對象與網路事件集合關聯在一起。當網路事件發生時,應用程式以事件的形式接收網路事件通知。
使用這個模型的基本思路是為感興趣的一組網路事件創建一個事件對象,再調用WSAEventSelect()函式將網路事件和事件對象關聯起來。當網路事件發生時,Winsock使相應的事件對象受信,在事件對象上的等待函式就會返回。
Winsock中創建事件對象的函式是WSACreateEvent,定義如下:
WSAEVENT WSACreateEvent(void); //返回一個手工重置的事件對象句柄
創建事件對象之後,必須調用WSAEventSelect函式將指定的一組網路事件與它關聯在一起,函式用法如下。
WSAEventSelect模型簡單易用,也不需要視窗環境。該模型唯一的缺點是有最多等待64個事件對象的限制,當套接字連線數量增加時,就必須創建多個執行緒來處理I/O,也就是所謂的執行緒池

相關詞條

熱門詞條

聯絡我們