gpt4 book ai didi

winapi - Winsock 使用系统代理设置

转载 作者:行者123 更新时间:2023-12-01 13:51:52 27 4
gpt4 key购买 nike

我有一个简单的 winsock 程序,我想通过系统代理传递我的连接。我看到一些帖子解释了如何捕获系统代理然后发送如下字符串:

CONNECT 127.0.0.1:8080 HTTP/1.0\r\n

等等。但它并不总是有效。另一方面,当使用 WinInet API(InternetOpen() 函数和...)时,它工作得很好。我需要像 WinInet 这样始终正常工作的解决方案和像 Winsocket 这样的双向功能。

最佳答案

没有“系统代理”这样的东西。 WinInet 的代理设置只是 WinInet 的一部分,而不是 Windows 本身(Internet Explorer 使用 WinInet,因此 WinInet 配置会影响 IE,但不会影响 WinSock)。

CONNECT 127.0.0.1:8080 HTTP/1.0\r\n\r\n 是一个连接字符串,用于通过基于 HTTP 的代理服务器建立隧道(参见 Tunneling with HTTP CONNECT )。您连接到代理,发送CONNECT命令让它连接到目标服务器,检查响应,如果成功则您可以像已经连接一样与目标服务器正常进行双向通信直接给它。

但是还有其他种类的代理,比如SOCKS .相同的概念(连接到代理,请求连接到目标,之后正常进行),但协议(protocol)与 HTTP 截然不同。

使用 WinSock 编码时,您必须在自己的代码中手动实现各种代理协议(protocol),或者寻找第三方库来为您处理。 WinSock 没有对代理的内置支持。而且你必须提前知道正在使用什么类型的代理,这样你才能使用正确的协议(protocol)。有 API 可以动态检测代理设置,或者只要求用户提供详细信息。

关于winapi - Winsock 使用系统代理设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com