WSASocket()应该与IOCP一起使用吗?

时间:2015-03-09 13:25:17

标签: c++ sockets winsock iocp overlapped-io

我知道在创建IOCP应用程序时,建议使用WSAAccept()而不是accept()。但我不确定WSASocket()是否属于重叠I / O函数,还是只是另一个Winsock函数?

1 个答案:

答案 0 :(得分:3)

我一直以为您可以通过查看socket()WSASocket()的MSDN文档来回答这个问题,特别是您无法创建可以与重叠I / O一起使用的套接字(和IOCP)使用socket()WSASocket()允许您在创建套接字时指定WSA_FLAG_OVERLAPPED标志。但这是不正确的,因为socket()创建了设置WSA_FLAG_OVERLAPPED的套接字。

然而,一般来说,Windows中的berkeley / POSIX套接字功能只是为了方便那些想要编程到该API的人。使用它们的理由很少,应该首选原生Windows API。