我知道在创建IOCP应用程序时,建议使用WSAAccept()
而不是accept()
。但我不确定WSASocket()
是否属于重叠I / O函数,还是只是另一个Winsock函数?
答案 0 :(得分:3)
我一直以为您可以通过查看socket()
和WSASocket()
的MSDN文档来回答这个问题,特别是您无法创建可以与重叠I / O一起使用的套接字(和IOCP)使用socket()
仅WSASocket()
允许您在创建套接字时指定WSA_FLAG_OVERLAPPED
标志。但这是不正确的,因为socket()
创建了设置WSA_FLAG_OVERLAPPED
的套接字。
然而,一般来说,Windows中的berkeley / POSIX套接字功能只是为了方便那些想要编程到该API的人。使用它们的理由很少,应该首选原生Windows API。