c – 我应该使用AcceptEx()还是WSAAccept()?

我正在使用Overlapped IO,我想使用阻塞调用接受客户端连接,就像我使用普通的accept()一样.我不确定,但我认为AcceptEx()不会阻塞,而WSAAccept()会阻止.那么WSAAccept()类似于accept()吗? 最佳答案 除非你使用ioctlsocket将监听器设置为非阻塞模式,否则accept()和WSAAccept()都会阻塞.因此,您可以使用其中任何一个在阻止时接受客户端.

但是,如果使用WSAEventSelect在侦听器上针对FD_ACCEPT注册事件,则可以获得更多控制权.当客户端准备好被接受而没有阻止时,您的事件将被设置.

然后,您可以将此事件与超时或其他事件相结合,如果要在WaitForMultipleObjectsEx调用中取消侦听(例如,在应用程序退出时),则可以发出信号.

点赞