Winsock 使用系统代理设置

2024-01-05

我有一个简单的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 的代理服务器建立隧道(请参阅使用 HTTP CONNECT 建立隧道 https://devcentral.f5.com/articles/tunneling-with-http-connect)。您连接到代理,发送CONNECT命令让它连接到目标服务器,检查响应,如果成功则可以正常与目标服务器进行双向通信,就像直接连接一样。

但还有其他类型的代理,例如SOCKS https://en.wikipedia.org/wiki/SOCKS。相同的概念(连接到代理,请求连接到目标,然后正常进行),但协议与 HTTP 截然不同。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Winsock 使用系统代理设置 的相关文章

  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • C++/Win32 在虚拟内存中创建文件

    如何在虚拟内存中创建文件以及可以在其上使用普通文件函数 如 CreateFile WriteFile 等 吗 我正在尝试实现一个缓冲文件编写器类 但问题是管理需要动态常量重新分配的缓冲区 你可以使用管道 它们也被操作系统视为 文件 您可以将
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 解密/读取/修改“.automaticDestinations-ms”和/或“.customDestinations-ms”

    有谁知道如何读取 Microsoft 为 JumpList 创建的文件 我想从 JumpList 中清除所有历史记录 最常访问的 最近关闭的 而不清除任务 我尝试使用 win7api 中的 APPID 并清除例如 google chrome
  • C++ 将控制台文本颜色设置为 RGB 值

    我想将控制台的文本颜色设置为 RGB 颜色 我创建了一个函数来获取控制台的 ColorTable 并更改其中的颜色 但它不起作用 我不知道如何将文本颜色设置为颜色表中的值 因此我只是更改整个颜色表 但它没有执行任何操作 void setCo
  • WndProc调用机制(WinAPI)

    我试图了解 Windows 应用程序是如何工作的 有一个WndProc函数 其中发生消息处理 LRESULT CALLBACK WndProc HWND hwnd UINT msg WPARAM wParam LPARAM lParam s
  • 将 C++ TCP/IP 应用程序从 IPv4 转换为 IPv6。难的?值得这么麻烦吗?

    多年来 我使用 WinSock 为 Windows 开发了少量 C 服务器 客户端应用程序 路由器 Web 邮件 FTP 服务器等 等等 我开始越来越多地考虑创建这些应用程序的 IPv6 版本 当然 同时也保留原始的 IPv4 版本 问题
  • 验证 EXE 上的 Authenticode 签名 - C++,无需 CAPICOM

    我正在为安装程序 DLL 编写一个函数 以验证系统上已安装的 EXE 文件的 Authenticode 签名 该函数需要 A 验证签名是否有效 B 验证签名者是我们的组织 因为这是在安装程序中 并且因为它需要在较旧的 Win2k 安装上运行
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 使 GetRawInputDeviceInfo 和 RIDI_DEVICEINFO 与 C# 一起使用

    我有一个问题 我似乎无法使 GetRawInputDeviceInfo 与 RIDI DEVICEINFO 结合使用 尝试检索 RID DEVICE INFO 根本不起作用 我从函数中得到错误 1 这意味着没有足够的空间来存储 RID DE
  • 如何在 Rust winapi 编程中使用 COM VARIANT?

    我正在尝试转换C COM 代码 https technet microsoft com pt br aa382113 v vs 71 for TaskSchedulerRust 并坚持VARIANT的论证ITaskService Conne
  • 可以使用 Winkey+L 进行低级键盘挂钩/SendInput 吗? (工作站锁定在 Vista 及更高版本中被拦截)

    I work on a project called UAWKS http code google com p uawks Unofficial Apple Wireless Keyboard Support that helps Wind
  • 如何知道哪个本地应用程序连接到我的套接字(Windows)

    我有一个绑定到某个 TCP 端口的 Windows 服务 该端口用于我的应用程序之间的 IPC 有没有一种编程 WinAPI WinSocket 等 方法可以知道哪个应用程序连接到我的端口 即在我的 Windows 服务中 我想获取连接到我
  • 枚举 EMF 时丢失文本

    我在列举发票 emf http www mediafire com kdjwvvo7odyvwa6并将其复制到另一个但文本丢失了 令人惊讶的是 当我将其输出到窗口时 它绘制得非常完美 int CALLBACK EnhMetaFileProc
  • 检测笔记本电脑盖子的关闭和打开

    是否可以检测笔记本电脑的盖子何时打开或关闭 从我读到的内容来看 这是不可能的 但 SO 之前已经帮助我完成了不可能的任务 我发现唯一可能朝着正确方向的事情是关于报告电源按钮所需的 IOCTL 的 MSDN 博客文章 https learn

随机推荐