C++ 不含WSAIoctl的AcceptEx

C++ 不含WSAIoctl的AcceptEx,c++,sockets,C++,Sockets,使用AcceptEx直接调用或使用WSAIoctl获得的函数指针有什么区别吗 MSDN没有完全涵盖有关性能问题的问题以及使用AcceptEx作为直接调用时可能遇到的其他问题 另一个问题是: 例如,如果我的程序中有4个侦听套接字,那么我是否需要为每个侦听套接字调用WSAIoctl,当然还需要为每个套接字存储函数指针?或者对任何套接字调用一次就足够了,并且可以与其他套接字一起使用 提前感谢。WSAIoctl。它是一个扩展提供程序,用于winsock功能的新功能/添加,每个新的windows版本通常会

使用AcceptEx直接调用或使用WSAIoctl获得的函数指针有什么区别吗

MSDN没有完全涵盖有关性能问题的问题以及使用AcceptEx作为直接调用时可能遇到的其他问题

另一个问题是: 例如,如果我的程序中有4个侦听套接字,那么我是否需要为每个侦听套接字调用WSAIoctl,当然还需要为每个套接字存储函数指针?或者对任何套接字调用一次就足够了,并且可以与其他套接字一起使用


提前感谢。

WSAIoctl。它是一个扩展提供程序,用于winsock功能的新功能/添加,每个新的windows版本通常会添加两个新的扩展

AcceptEx函数指针: 使用AcceptEx可直接将应用程序绑定到需要MSWsock.dll的Microsoft提供程序。至于正确性,您可能应该使用msdn方法,并通过扩展使用函数

只需设置一次,然后像使用MSWsock AcceptEx一样使用它(您仍将使用相同的东西)

至于速度/性能,我建议将重点放在套接字池上

编辑: 应该澄清(msdn)分离的原因-扩展是Microsoft特定的功能,不应强制其他提供商实现这些功能

调用函数而不事先获取函数指针 (即通过链接mswsock.lib并直接调用AcceptEx) 因为AcceptEx位于的分层体系结构之外,所以成本很高 Winsock2。AcceptEx必须使用WSAIoctl请求函数指针 每次调用都可能导致应用程序实际尝试 要从mswsock顶部的提供程序调用AcceptEx(请参阅 图3)。为了避免每次调用都会造成严重的性能损失, 打算使用这些API的应用程序应获得 直接从分层提供程序指向这些函数的指针 打电话给WSAIoctl