WinInet 或 WinHTTP 支持自定义端口吗?如果是这样,我该如何实施?

Jus*_*ell 1 c++ winapi wininet winhttp

我正在尝试使用 HTTP 和 HTTPS(在不同的场景中)从默认分别使用端口 5080 和 5443 的服务下载文件。我想使用 WinInet(或 WinHTTP),因为它们是 Windows 原生的,但似乎 WinInet 和 WinHTTP 都只支持使用端口 80 或端口 443,并且不支持指定其他任何内容。

是否可以指定不同的端口,而我忽略了一些东西?如果没有,下一个最佳的本机选项是使用 WinSock 吗?

编辑:如下回答,第三个参数的类型为 INTERNET_PORT,但将接受任何 DWORD。微软的文档令人困惑,正如此处所写的,InternetConnect,它说“nServerPort 可以是以下值之一。”,这使人们相信只有提供的常量是有效的。

相反,您可以提供任何端口值(DWORD 类型)。

我在 InternetConnect 文档页面上提交了反馈,因此希望未来的读者能够更清楚地了解这一点。

Rem*_*eau 5

WinInetInternetConnect()和 WinHTTPWinHttpConnect()都允许您在各自的nServerPort参数中指定所需的任何端口号。您不必使用预定义的常量,例如INTERNET_DEFAULT_HTTP(S)_PORT.