0

我尝试使用以下代码段通过 Android 客户端应用程序(Android OS 1.5 和 1.6)中的 SOCKS 服务器连接到服务器:

    Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(Constants.SOCKS_PROXY_HOST, Constants.SOCKS_PROXY_PORT));
    socket = new Socket(proxy);
    InetSocketAddress dest = new InetSocketAddress(targetHost,targetPort);
    socket.connect(dest);

但是它在最后一行给出了一个例外:

W/System.err(  507): java.net.SocketException: SOCKS connection failed: java.net.SocketException: Bad socket
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.socksConnect(PlainSocketImpl.java:389)
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:224)
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:521)
W/System.err(  507):    at java.net.Socket.connect(Socket.java:1019)
W/System.err(  507):    at java.net.Socket.connect(Socket.java:960)

任何人都可能知道我在哪里做错了?提前致谢。

4

1 回答 1

0

花了一段时间,但终于找到了解决方案。似乎在几个 Android 设备上实现 java.net SOCKS 有点问题,即使两部手机都具有相同的 Android 操作系统版本(在不同版本的几部手机上测试)。无论如何,我必须在我的项目中使用另一个替代袜子库:JSocks (http://jsocks.sourceforge.net/)

到目前为止,它在我测试过的几台设备上就像一个魅力。

于 2010-10-15T01:07:04.807 回答