我正在使用 C# 使用 MonoTorrent 制作一个 bittorrent 应用程序。该应用程序有些成熟,但我正在添加 SOCKSv5 代理支持。我找到了 Starksoft.Net.Proxy来处理代理部分。但是,我遇到了一些麻烦。
我有一个用于测试的BTGuard帐户。当我连接(提供用户名和密码等)时,我收到此错误:
Starksoft.Net.Proxy.ProxyException: Connection to proxy host 63.142.161.35 on port 1025 failed. ---> Starksoft.Net.Proxy.ProxyException: The the connection is not allowed by proxy destination rule set concerning destination host 195.122.253.23 port number 11523. The destination reported the host as 0.0.0.0 port -16676.
at Starksoft.Net.Proxy.Socks5ProxyClient.HandleProxyCommandError(Byte[] response, String destinationHost, Int32 destinationPort)
at Starksoft.Net.Proxy.Socks5ProxyClient.SendCommand(Byte command, String destinationHost, Int32 destinationPort)
at Starksoft.Net.Proxy.Socks5ProxyClient.CreateConnection(String destinationHost, Int32 destinationPort)
--- End of inner exception stack trace ---
at Starksoft.Net.Proxy.Socks5ProxyClient.CreateConnection(String destinationHost, Int32 destinationPort)
at Starksoft.Net.Proxy.Socks5ProxyClient.CreateConnectionAsync_DoWork(Object sender, DoWorkEventArgs e)
这很奇怪。我不知道是什么原因造成的。我通读了 Starksoft 代码,它似乎与SOCKS RFC相当一致。
这是我用来通过 Starksoft.Net.Proxy 连接到代理的代码。上面的堆栈跟踪来自第 133 行的 e.Error。