6-WSAsyncSelect模型.ppt

6-WSAsyncSelect模型

WSASsyncSelect模型 前面学习的Windows Sockets select模型。在应用程序中调用select()函数时,会发生阻塞现象。开发人员可以通过select()函数的timeout参数,设置函数调用的阻塞时间,在设定时间内,线程保持等待,直到其中的一个或者多个套接字满足可读或者可写的条件,该函数才返回。 WSAAsyncSelect模型是非阻塞的。如图所示,Windows Sockets 应用程序在调用recv()函数接收数据前,调用WSAAsyncselect()函数注册网络事件。WSAAsyncselect()函数立即返回,线程继续运行。当系统中数据准备好时,向应用程序发送消息。应用程序接收到这个消息后,调用recv()函数接收数据。 与select模型比较 WSAAsyncSelect模型与Select模型的相同点: 都可以对Windows套接字应用程序所使用的多个套接字进行有效的管理。 WSAAsyncSeelect模型与Select模型相比存在以下不同: WSAAsyncSelet模型是异步的。在应用程序中调用WSAAsyncSelect()函数,通知系统感兴趣的网络事件,该函数立即返回,应用程序继续运行。 发生网络事件时,应用程序得到通知的方式不同。Select()函数返回时,说明某个或者某些套接字满足可读可写的条件,应用程序需要使用FD_

文档评论(0)

1亿VIP精品文档

相关文档