gpt4 book ai didi

proxy - 如何为c#套接字连接添加代理支持?

转载 作者:行者123 更新时间:2023-12-02 02:04:21 25 4
gpt4 key购买 nike

我有一个套接字应用程序,需要支持 SOCKS 4 和 5 代理连接,因为我的用户可能位于防火墙后面。我正在使用 WPF 和 C# 3.5 SP1。我在代理的默认 Socket 类中没有看到任何选项,我是否必须自己推出?

如果可能的话,我不想使用第 3 方库 - 使用标准 C# 套接字启用代理支持有多困难?

最佳答案

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

您可以在维基百科上找到所有 RFC 和生成信息。我无法发布更多内容,因为这个疯狂的 stackoverflow 网站将我允许的超链接数量限制为 1,因为我不是普通用户。非常烦人。

http://en.wikipedia.org/wiki/SOCKS

最后,如果你愿意,你可以抄袭我的代码,因为它是在 MIT 许可证下的,我允许你做那种事情。 :) 看一下我的 Socks4ProxyClient.cs 类,它实现了 Socks v4 协议(protocol)。您最感兴趣的方法名为 SendCommand(),位于第 282 行。您可以在 Google Code 中找到我的代码。搜索斯塔克软件。或者您可以直接访问我的网站,我在 Google 中提供了源代码的链接。

Socks5 的实现有点棘手,需要指定更多选项,并且与服务器之间的通信也更多,但基本上与 Socks4 非常相似。

祝你好运,如果你想学习 Socks,你应该自己实现一个解决方案。所以,向你致敬!

  • 本顿

关于proxy - 如何为c#套接字连接添加代理支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com