首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

socket WSAAsyncSelect方式send与recv函数是非堵塞的

2014-01-15 
socket WSAAsyncSelect模式send与recv函数是非堵塞的?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![

socket WSAAsyncSelect模式send与recv函数是非堵塞的?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
WSAAsyncSelect的意思就是异步选择,是基于消息的模型。

WSAAsyncSelect 和 setsocketop 没有直接的关系。两个函数的功能不一样。

MFC 的 CAsyncSocket 和 CSocket 都是基于AsyncSelect这个模型的。
作为窗体应用程序开发,使用AsyncSelect是推荐的一种方式(尽管效率不算高),因为windows程序设计的基础就是消息路由。
[解决办法]
WSAAsyncSelect模型相对于同步阻塞模型来说:
同步阻塞模型下调用recv时,如果没有数据可接收,会阻塞。
WSAAsyncSelect模型下调用recv时,如果没有数据可接收,不会阻塞,返回WSAEWOULDBLOCK错误。

但WSAAsyncSelect模型并非异步IO,如果确实可发送数据时调用send,或确实有数据可接收时调用recv,是阻塞的,尤其是数据量比较大的时候更能看出。

热点排行