Winsock使用系统代理设置

QCoder

我有一个简单的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,但不会影响IE)。

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

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

使用WinSock进行编码时,您必须在自己的代码中手动实现各种代理协议,或找到第三方库来为您处理。WinSock没有对代理的内置支持。而且您必须提前知道正在使用哪种类型的代理,以便可以使用正确的协议。有一些API可动态检测代理设置,或仅要求用户提供详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章