浅谈WinSock I/O模型之异步选择(WSAAsyncSelect)

本文介绍了WinSock的异步选择模型WSAAsyncSelect,对比了它与select模型的异同。WSAAsyncSelect是Select的异步版本,它在发生网络事件时通过消息通知应用程序,适用于基于消息的Windows环境,需要创建窗口。该模型在处理网络事件和数据接收方面具有优势,但也存在局限性,如必须创建窗口和套接字自动设置为非阻塞模式。
摘要由CSDN通过智能技术生成

异步选择,顾名思义就是WSAAsyncSelect模型是Select模型的异步版本,在调用select()函数时,会发生阻塞现象。可以通过select()函数timeout参数,设置函数调用的阻塞时间。在设定的时间内,线程保持等待,直到其中一个或多个套接字满足可读可写的条件时,该函数返回。

首先我们将异步选择与select模型进行比较:

相同点:他们都可以对Windows套接字应用程序所使用的多个套接字进行有效的管理。
不同点
1.WSAAsyncSelect模型是异步的。在应用程序中调用WSAAsyncSelect()函数,通知系统感兴趣的网络事件,该函数立即返回,应用程序继续执行;
2.发生网络事件时,应用程序得到的通知方式不同。Select()函数返回时,说明某个或者某些套接字满足可读可写的条件,应用程序需要使用FD_ISSET宏,判断套接字是否存在可读可写集合中。而对于WSAAsyncSelect模型来说,当网络事件发生时,系统向应用程序发送消息。
    3.WSAAsyncSelect模型应用在基于消息的Windos环境下,使用该模型时必须创建窗口。而Select模型广泛应用在Unix系统和Windows系统,使用该模型不需要创建窗口。

<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值