WinHttpOpenRequest&无法到达的目的地

时间:2015-05-19 17:29:16

标签: c++ winhttp

我正在测试winHTTP并且我注意到无论通过WinHttpSetTimeouts设置的超时值如何,如果使用WinHttpConnect的IP地址并且IP地址无法访问(即ping返回"目标主机不可访问"),即使我将超时值设置得更高,连接超时也始终为21秒。

正在考虑的值似乎对应于dwConnectTimeout值(传递给WinHttpSetTimeouts的第3个值),因为在减小此值时,超时会更快发生,但上限为21秒。

以前有没有人经历过这个?有谁知道为什么会发生这种情况以及我如何防止它发生?

1 个答案:

答案 0 :(得分:2)

经过研究,似乎有WinhttpSetTimeOuts函数无法控制的底层TCP连接超时。建议的解决方案是从所需的Timeout值中减去经过的时间,然后在剩余时间内重试请求。

当然,如果你找到一个更好的解决方案,那么我会很高兴听到它。