如何为套接字设置代理?

Posted

技术标签:

【中文标题】如何为套接字设置代理?【英文标题】:How to set a proxy to a socket? 【发布时间】:2014-07-23 14:45:01 【问题描述】:

我想在套接字中使用代理,就像我在这里在 webclient 中使用代理一样:

using(Webclient wb = new Webclient()

   wb.Proxy = new WebProxy();

我想在这里使用网络代理:

public void Connect()

    this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    this.socket.Connect(this.whatsHost, this.whatsPort);

    this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, this.recvTimeout);
    this.socket.ReceiveBufferSize = Int32.MaxValue;

    // this.socket.SendBufferSize = Int32.MaxValue;

    if (!this.socket.Connected)
        throw new ConnectionException("Cannot connect");

有没有办法在套接字中使用代理?

【问题讨论】:

【参考方案1】:

一个网络代理是……一个网络事物。套接字是原始 TCP 连接,Web 连接在内部使用套接字。当您使用代理时,固有的套接字会连接到代理端点,并通过应用程序协议,Web 客户端会指示它要连接的位置。

回答您的问题...不。套接字是 TCP 连接,您必须提供要连接的最终端点。代理是应用程序级别的东西。

【讨论】:

以上是关于如何为套接字设置代理?的主要内容,如果未能解决你的问题,请参考以下文章

如何为特定网络接口创建传出套接字?

NodeJS:如何为测试服务器创建一个假的 tcp 套接字

如何为 3 个不同的事件(信号量、pthread 条件和阻塞套接字接收)阻塞单个线程?

如何使用 Web 套接字和 Angular CLI 设置代理

如何为 iPhone 制作聊天客户端 [关闭]

Python 套接字 - 创建消息格式