我正在使用 Overlapped IO,我想使用阻塞调用来接受客户端连接,就像我使用普通 accept()
一样。我不确定,但我认为 AcceptEx()
不会阻塞,而 WSAAccept()
会阻塞。那么 WSAAccept()
是否类似于 accept()
?
最佳答案
accept()
和 WSAAccept()
都会阻塞,除非您使用 ioctlsocket
将监听器设置为非阻塞模式。因此,您可以使用其中任何一个在阻塞时接受客户端。
但是,如果您使用 WSAEventSelect
在您的监听器上针对 FD_ACCEPT
注册一个事件,您将获得更多控制权。当客户端准备好被接受而不阻塞时,您的事件将被设置。
然后您可以将此事件与超时或其他事件相结合,如果您想在调用 WaitForMultipleObjectsEx
时发出信号(例如,在应用程序退出时)。
关于c++ - 我应该使用 AcceptEx() 还是 WSAAccept()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719806/