一、WSACreateEvent函数
WSACreateEvent
函数是Windows套接字API中的一部分,它用于创建套接字事件对象,以便在套接字操作上等待事件发生。这个函数通常与异步套接字操作一起使用,以允许应用程序异步地等待套接字事件的发生,而不需要阻塞线程。
函数原型:
WSAEVENT WSAAPI WSACreateEvent(void);
参数:
无需传递任何参数。
返回值:
- 如果成功,函数返回一个
WSAEVENT
类型的句柄,代表创建的套接字事件对象。 - 如果失败,函数返回
WSA_INVALID_EVENT
,并且可以通过WSAGetLastError()
函数获取错误代码。
二、WSAEventSelect函数
WSAEventSelect
函数是Windows套接字编程中常用的函数,用于指定一个或多个事件,以便在套接字上等待这些事件的发生。这个函数通常与异步套接字一起使用,以允许应用程序在等待事件发生时不会阻塞线程。
函数原型:
int WSAEventSelect( SOCKET s, WSAEVENT hEventObject, long lNetworkEvents );
参数:
s
:要关联事件的套接字的描述符。hEventObject
:一个套接字事件对象的句柄,通常通过WSACreateEvent
函数创建。lNetworkEvents
:一个标志位,用于指定要关联的事件类型。可以使用各种常量来设置这些标志,例如FD_READ
、FD_WRITE
、FD_ACCEPT
、FD_CONNECT
等。- FD_ACCEPT:有客户端链接,与服务器socket绑定。
- FD_READ:有客户端发来消息,与客户端socket绑定,可多个属性并列用。
- FD_CLOSE:客户端下线,与客户端socket绑定,包含强制下线,正常下线。
- FD_WRITE:可以给客户端发送信息,与客户端socket绑定,会在accept后立即主动产生该信号,可以说明,客户端链接成功,即可随时发送信息。
- FD_CONNECT:客户端一方,给服务器绑定这个。
- 0:取消事件监视
返回值:
- 如果函数成功,返回值为0。
- 如果函数失败,返回值为
SOCKET_ERROR
,并且可以通过WSAGetLastError()
函数获取错误代码。
标签:绑定,函数,Windows,模型,编程,FD,事件,接字,客户端 From: https://www.cnblogs.com/TechNomad/p/17736932.html