2010-10-14 60 views
0

我试图通过SOCKS服务器在Android客户端应用程序连接到服务器(Android操作系统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) 

任何人都可能有一个想法,我在哪里做错了? 在此先感谢。

回答

0

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

到目前为止,它在我测试过的几个设备上至今仍然很有魅力。

+0

你能告诉我如何在我的应用程序中使用袜子? – Noman 2013-06-03 09:33:50