2010-10-14 8 views
0

J'ai essayé de se connecter à un serveur via un serveur SOCKS dans une application client Android (Android OS 1.5 et 1.6) avec ci-dessous extrait de code:Android, Exception Bad Socket (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); 

Cependant, il a donné à une exception sur la dernière ligne:

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) 

Tout le monde peut avoir une idée où je ne fait de mal? Merci d'avance.

Répondre

0

Il a fallu un certain temps, mais finalement trouvé la solution. Il semble qu'il y ait un peu de problème avec l'implémentation de java.net SOCKS sur plusieurs appareils Android, même lorsque les deux téléphones ont la même version du système d'exploitation Android (testé sur plusieurs téléphones avec des versions différentes). Quoi qu'il en soit, je dois utiliser une autre bibliothèque de chaussettes alternative sur mon projet: JSocks (http://jsocks.sourceforge.net/)

Et jusqu'à présent cela fonctionne comme un charme jusqu'à présent sur plusieurs appareils que j'ai testés.

+0

pouvez-vous me dire comment puis-je utiliser des chaussettes dans mon application? – Noman