如何为套接字设置代理?
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 连接,您必须提供要连接的最终端点。代理是应用程序级别的东西。
【讨论】:
以上是关于如何为套接字设置代理?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 3 个不同的事件(信号量、pthread 条件和阻塞套接字接收)阻塞单个线程?