通过.NET TcpClient与HTTP代理进行通信

如何在C#中通过HTTP代理与TcpClient进行通信,有点像使用HttpWebResponse时的WebProxy

好吧,TCP没有任何直接等同于HTTP代理的东西。 在HTTP中,客户端(通常)知道代理 – 它与代理进行通信,并要求代理代表它连接到真实的Web服务器。

TCP没有定义那种东西,因此任何代理都必须是透明的(即路由器或操作系统在没有客户端知道的情况下执行的操作,例如使用iptables )或作为TCP之上的协议的一部分( HTTP代理就是一个很好的例子,在不同的答案中提到的SOCKS也是如此。

如果你进入低级套接字编程,我很确定你需要编写自己的代理客户端。 如果您只处理HTTP协议,那么最好使用特定于HTTP的类。 如果您需要使用套接字, HTTP规范可以很好地描述代理的行为,因此您可以编写自己的客户端。

如果您想使用SOCKS代理,则已经为C#编写了一些SOCKS库。 试试这个 。