Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 如何向c#套接字连接添加代理支持?_Proxy_Sockets - Fatal编程技术网

Proxy 如何向c#套接字连接添加代理支持?

Proxy 如何向c#套接字连接添加代理支持?,proxy,sockets,Proxy,Sockets,我有一个socket应用程序,需要支持SOCKS 4和SOCKS 5代理连接,因为我的用户可能在防火墙后面。我正在使用WPF和C#3.5SP1。我在proxys的默认套接字类中看不到任何选项,我必须自己滚动吗 如果可能的话,我宁愿不使用第三方LIB——用标准C#Socket启用代理支持有多困难?您可以询问一些信息。第一个链接之一将引导您访问Mentalis.org及其网站。他们曾经以免费的网络和安全设施而闻名,但这些项目似乎有一段时间没有得到维护 但无论如何,它可能值得一看。我知道你说过如果可能

我有一个socket应用程序,需要支持SOCKS 4和SOCKS 5代理连接,因为我的用户可能在防火墙后面。我正在使用WPF和C#3.5SP1。我在proxys的默认套接字类中看不到任何选项,我必须自己滚动吗

如果可能的话,我宁愿不使用第三方LIB——用标准C#Socket启用代理支持有多困难?

您可以询问一些信息。第一个链接之一将引导您访问Mentalis.org及其网站。他们曾经以免费的网络和安全设施而闻名,但这些项目似乎有一段时间没有得到维护


但无论如何,它可能值得一看。

我知道你说过如果可能的话,你不想使用第三方图书馆,但我想推荐这一点。

这并不难,但你必须阅读一些RFC。您需要阅读Socks v4、Socks v4a和Socks v5上的RFC规范。我写了一个图书馆,可以为你做所有的工作,但是如果你愿意自己写,那也很酷。我的库在上一篇文章(Starksoft)中提到过。您可以使用标准TcpClient对象或套接字连接实现Socks协议。TcpClient更简单。您只需在连接到代理服务器后立即发送命令。这些命令将指示代理服务器您希望连接到的最终端点。还有UDP Socks连接的规范,但听起来您不需要它

您可以在维基百科上找到所有RFC和生成信息。我不能发布更多,因为这个疯狂的stackoverflow网站限制了我的超链接数量,因为我不是一个普通用户。很烦人

最后,如果你愿意,你可以剽窃我的代码,因为它是在麻省理工学院的许可下,我允许你做这种事情。:)看看我的类Socks4ProxyClient.cs,它实现了Socks v4协议。您最感兴趣的方法是位于第282行的SendCommand()。你可以在谷歌代码找到我的代码。搜索Starksoft。或者你可以直接去我的网站,我有谷歌源代码的链接

Socks5的实现有点棘手,需要指定更多的选项,对服务器来说也有点喋喋不休,但基本上与Socks4非常相似

祝你好运,如果你想学习袜子,你应该自己实施一个解决方案。所以,恭喜你

  • 本顿

您做了什么需要在如此低的水平下运行?为什么不能使用更高级别的协议,而大多数实现都内置了代理支持?