0

我正在使用 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。

4

1 回答 1

0

我发现了这个问题。这是Starksoft.Net.Proxy 准备然后丢弃用户名/密码交换数据的部分。

我通过更新到Biko来修复它,但它需要一些调整才能正常工作。对于以后发现此问题的任何人来说应该很容易处理。

或者,只需获取损坏版本的来源并粘贴一些代码以发送数据并接收确认。

于 2013-03-23T02:26:54.337 回答