WinHttp 异步超时问题

Sha*_*adi 5 c++ winhttp

我正在尝试使用 WinHTTP C++/Windows API 来连接到多个 Http 服务器。在切换到 WinHTTP 之前,我尝试以异步方式使用 HttpClient C# 4.5,但是我没有获得高吞吐量并且 CPU 太高。

在 WinHTTP 上,单个请求不应超过 100 毫秒;但是我注意到,当使用 WinHTTPSSetTimeouts 时,即使将超时设置为 10 毫秒也没有任何影响,对同一台机器上的端口的单个请求仍然需要 15-30 毫秒,并且当连接到没有主体侦听的端口时,请求最多需要1000 毫秒,因此,我得出结论超时不起作用。

此外,我注意到在同一台机器上触发 GET 请求所需的时间需要 15-30 毫秒,与需要 2-7 毫秒的 .NET 相比,这太高了...

我还尝试将连接/接收/发送超时设置为 1 秒,但 4 秒后接收操作超时。

您是否知道如何解决超时以及为什么单个请求需要时间。