[英]Winsock accept event sometimes stops signaling (WSAEventSelect)
[英]Why does my Winsock app sometimes wait at listen() and sometimes at accept()?
大家好,我正在使用Visual C ++ 2010,尝试使用Winsock编写服务器/客户端应用程序...我不确定为什么,但是有时服务器在listen()函数,有时在accept()等待。 只是想知道,这两个功能的机制是什么? 它不是应该等待listen()直到听到传入的连接然后继续接受()吗?
没有。 您的观察结果有误。 listen()
不是阻塞调用。 它所做的全部工作就是将端口置于LISTENING状态,无论成功还是失败。 没有什么可以阻止的。
它是accept()
阻止,等待入站连接。
listen
功能使套接字进入监听模式。 您只需调用一次此函数。 通常,此函数立即返回。
通过调用accept
函数来接受传入的连接。 在阻止模式(默认)下,它仅在接受新连接或发生错误时才返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.