繁体   English   中英

为什么我的Winsock应用程序有时会在listen()有时在accept()上等待?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM