Windows网络编程@[事件选择模型WSAEventSelect]

Windows网络编程@[事件选择模型WSAEventSelect]

WSAEventSelect 模型

基本原理;
WSAEventSelect 模型:允许应用程序在一个或者多个套接字上接收基于事件的网络通知。它与WSAAsyncSelect模型类似是因为它也接收FD_ _XXX 类型的网络事件,不过并是依靠Windows的消息驱动机制,而是经由事件对象句柄通知。
使用这个模型的基本思路是为感兴趣的一组网络事件创建一个事件对象,再调用WSAEventSelect函数将网络事件和事件对象关联起来。当网络事件发生时,Winsock 使相应的事件对象受信,在事件对象上的等待函数就会返回。之后,调用WSAEnumNetworkEvents函数便可获取到底发生了什么网络事件。

思路:

创建一个事件对象–>事件对象和网络事件关联–>网络事件发生,事件对象受信–>得知是发生了什么网络事件
//创建一个事件对象 WSAEVENT ListenEvent = WSACreateEvent();
//事件对象和网络事件关联
int WSAEventSelect(
SOCKET s, //套接字句柄
WSAEVENT hEventObject, //事件对象句柄
long lNetworkEvents //网络事件
);

//网络事件与时间对象关联后,就在时间对象上等待,等待时间对象受信
// WSAWaitForMultipleEvents 最多支持64个对象(也就是最多等待64个套接字对象)

DWORD WSAWaitForMultipleEvents(
DWORD cEvents, //指定lphEvents所指数组中事件对象句柄个数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值