我尝试通过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)
任何人都可能知道我哪里做错了? 提前谢谢。
答案 0 :(得分:0)
花了一段时间,但终于找到了解决方案。似乎在几个Android设备上实现java.net SOCKS有点问题,即使两款手机都有相同的Android操作系统版本(在几款具有不同版本的手机上测试过)。无论如何,我必须在我的项目中使用另一个替代袜子库:JSocks(http://jsocks.sourceforge.net/)
到目前为止,到目前为止,它在我测试的几种设备上的效果就像一个魅力。