我正试图在我自己的android XMPP应用程序上启用TOR支持。我使用orbot作为TOR代理,我有以下代码连接应用程序套接字:
socket = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 9050)));
socket.connect(addr, Config.SOCKET_TIMEOUT * 1000);但是我得到了Malformed reply from SOCKS server,即使我的Orbot已经启动并运行。我认为,当应用程序无法访问代理服务器或提到的服务器不是SOCKS代理时,就会引发此错误。
我还试着使用jsocks:
Socks5Proxy sProxy = new Socks5Proxy("127.0.0.1", 9050);
sProxy.resolveAddrLocally(false);
String host = account.getServer().toString();
int port = 5222;
System.out.println(host + ":" + port);
try {
socket = new SocksSocket(sProxy, host, port);
}catch(SocksException sock_ex){
System.err.println("SocksException:"+sock_ex);
}
System.out.println("here we are");主机的位置是"jabbim.com“,但我从来没有说到”这里是“println,所以看起来我的应用程序好像挂在创建SocksSocket的某个地方,但我也没有收到任何错误。当我调试它时,它挂在jsocks中某个地方的impl.getInputStream (我相信是PlainSocketImpl)。
知道怎么解决这个问题吗?
前谢
发布于 2015-11-23 11:18:58
我用
compile "org.igniterealtime.smack:smack-android-extensions:4.1.4"
compile "org.igniterealtime.smack:smack-tcp:4.1.4"然后使用以下代码进行连接:
final Random rndForTorCircuits = new Random();
String user = rndForTorCircuits.nextInt(100000) + "";
String pass = rndForTorCircuits.nextInt(100000) + "";
ProxyInfo proxyInfo = new ProxyInfo(ProxyInfo.ProxyType.SOCKS5, "127.0.0.1", 9050, user, pass);
socket = proxyInfo.getSocketFactory().createSocket(addr.getHostName(), addr.getPort());通过使用它,您可以获得已经连接到代理的套接字。
https://stackoverflow.com/questions/33829730
复制相似问题