如何使用非阻塞套接字调用accept() c++
这是一个愚蠢的问题,但我第一次尝试使用非阻塞套接字,但我注意到,当我运行服务器程序时,它立即在 accept()
(WSAEWOULDBLOCK
,我读过的,这是常见的事情)。我的问题是,我该如何连接到服务器? 我在 Windows 中使用ioctlsocket
。谢谢。
This my be a silly question, but I'm trying to use non-blocking sockets for the first time,but what I noticed is that when I run the server program it imediately gives me error in accept()
(WSAEWOULDBLOCK
, what i have read, this is an usual thing). My question is then,how can I connect to the server then ?
I am using ioctlsocket
in Windows. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过使用非阻塞套接字,如果没有客户端连接等待,
accept()
将立即返回。您需要检查错误是否为WSAEWOULDBLOCK
,如果是则忽略它,并使用轮询循环稍后再次检查。选择
函数可能有用。By using non-blocking sockets,
accept()
will immediately return if there's no client connection waiting. You need to check if the error isWSAEWOULDBLOCK
, ignore it if it is, and use a polling loop to check again later. Theselect
function may be useful.