- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用AcceptEx直接调用和使用WSAIoctl获取的函数指针有区别吗
MSDN 没有完全涵盖这个关于性能问题的问题以及使用 AcceptEx 作为直接调用可能面临的其他问题。
另一个问题是:例如,如果我的程序中有 4 个监听套接字,我是否需要为每个监听套接字调用 WSAIoctl,当然还需要为每个套接字存储函数指针?或者对任何套接字调用一次就足够了,而不是与其他套接字一起使用。
提前致谢。
最佳答案
Calling the function without previously obtaining a function pointer (that is, by linking with mswsock.lib and calling AcceptEx directly) is costly because AcceptEx sits outside the layered architecture of Winsock2. AcceptEx must request a function pointer using WSAIoctl for every call on the off chance that the application is actually trying to invoke AcceptEx from a provider layered on top of mswsock (see Figure 3). To avoid this significant performance penalty on each call, an application that intends to use these APIs should obtain the pointers to these functions directly from the layered provider by calling WSAIoctl.
关于c++ - 没有 WSAIoctl 的 AcceptEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470645/
我想知道使用 AcceptEx 和 OpenSSL 处理来自客户端的新连接的正确方法。我有一个非常好的工作服务器,它通过常规 HTTP 使用 AcceptEx 和 IO 完成端口。我想为其添加 Ope
我正在使用 Overlapped IO,我想使用阻塞调用来接受客户端连接,就像我使用普通 accept() 一样。我不确定,但我认为 AcceptEx() 不会阻塞,而 WSAAccept() 会阻塞
AcceptEx() 的文档说: When this operation is successfully completed, sAcceptSocket can be passed, but to
我目前正在尝试一些用于套接字编程的新库 (IOCP)。我偶然发现了 AcceptEx启用异步连接的功能。 正如文档所说: The AcceptEx function uses overlapped I
使用AcceptEx直接调用和使用WSAIoctl获取的函数指针有区别吗 MSDN 没有完全涵盖这个关于性能问题的问题以及使用 AcceptEx 作为直接调用可能面临的其他问题。 另一个问题是:例如,
在我的程序中,我使用 AcceptEx() 的重叠版本来接受新连接。接受新连接后,程序启动另一个重叠调用 AcceptEx() 以接受更多连接。这工作正常,我可以将多个客户端成功连接到服务器。 但是,
我正在尝试编写一个 IOCP 服务器。基本上,我让它接受新连接。出于测试目的,我正在运行并连接到 127.0.0.1。 我在调用 AcceptEx() 之前创建伪套接字。一旦连接被接受,新的伪套接字将
我正在尝试为完成端口编写一个小型测试服务器。但是当我尝试调用 AcceptEx 时...它总是返回 WSAEINVAL 作为 winsock 错误代码...我真的不明白我的错误是什么 http://c
我正在为我的系统使用 apache。最近我收到客户的投诉,说他们无法访问系统。我远程访问我的服务器并检查我的 Apache 及其工作正常。我尝试启动本地主机 Ant ,它也工作正常。我找不到任何问题,
当我调用 WSASend() 或 WSARecv() 或 AcceptEx() 时,一个完成数据包将被放入完成端口并我可以使用 GetQueuedCompletionStatus() 将其出队。但是我
当使用 JRE 6 在 Windows 7 Enterprise 上启动 Tomcat 6 时C:\Program Files\Apache Software Foundation\Tomcat 6.
我是一名优秀的程序员,十分优秀!