代码之家  ›  专栏  ›  技术社区  ›  Muhammad Abdullah

Android,坏套接字异常(SOCKS)

  •  0
  • Muhammad Abdullah  · 技术社区  · 14 年前

    我尝试通过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)
    

    有人可能知道我在哪里做错了? 事先谢谢。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Muhammad Abdullah    14 年前

    过了一会儿,终于找到了解决办法。在几个Android设备上实现java.net socks似乎有点问题,即使这两款手机都有相同的Android操作系统版本(在几个不同版本的手机上测试)。无论如何,我必须在我的项目中使用另一个可选的SOCKS库:jsocks(http://jsocks.sourceforge.net/)

    到目前为止,它在我测试过的几种设备上都像是一种魅力。