Объекты событий (сокеты Windows 2)

Для внедрения перекрывающихся операций ввода-вывода требуется механизм, позволяющий приложениям однозначно связывать отправку и получение запросов с последующими указаниями их завершения. В Windows Sockets 2 это выполняется с помощью объектов событий, которые смоделированы по событиям Windows. Объекты событий Windows Sockets — это довольно простые конструкции, которые можно создавать и закрывать, устанавливать и очищать, ожидать и опрашивать. Их основной полезной возможностью является возможность приложения блокировать и ждать, пока не будет задан один или несколько объектов событий.

Приложения используют WSACreateEvent для получения дескриптора объекта события, который затем может быть предоставлен в качестве обязательного параметра для перекрывающихся версий вызовов отправки и приема ( WSASend, WSASendTo, WSARecv, WSARecvFrom). Объект события, который очищается при первом создании, задается поставщиками транспорта после завершения связанной перекрывающейся операции ввода-вывода (успешно или с ошибками). Каждый объект события, созданный WSACreateEvent , должен иметь соответствующий объект WSACloseEvent для его уничтожения.

Объекты событий также используются в WSAEventSelect для связывания одного или нескольких сетевых событий FD_XXX с объектом события. Это описано в статье Асинхронное уведомление с использованием объектов событий.

В 32-разрядных средах функции, связанные с объектами событий, включая WSACreateEvent, WSACloseEvent, WSASetEvent, WSAResetEvent и WSAWaitForMultipleEvents , напрямую сопоставляются с соответствующими собственными функциями Windows, используя то же имя функции, но без префикса WSA.