IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

[Socket] Impossible de se connecter?


Sujet :

API standards et tierces Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut [Socket] Impossible de se connecter?
    Bonjour à tous!
    Je suis en train de travailler sur un petit projet et j'ai besoin d'avoir une connexion client vers un serveur.

    J'ai donc créé une petite fonction test nommée ping.
    Elle à pour objectif d'envoyer un message au serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
        private static Socket sRecup;
        private static InetAddress host;
        private static int port;
     
    public static boolean connexion(){
    		 try {
    			sRecup = new Socket(host, port);
    			PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
                out.println(str);
     
    		 } catch (UnknownHostException e) {
    			 System.out.println("1-Marche po");
    			return connected=false;
    		 } catch (IOException e) {
    			 System.out.println("2-Marche po");
    			return connected=false;
    		 } catch (NetworkOnMainThreadException e) {
    			 System.out.println("3-Marche po");
    			 return connected=false;
    		 }
    		 return connected=true;
    	}
     
    public static void setConnexion(String _host, int _port)
    	{
    		try { host=InetAddress.getByName(_host); }
    		catch (UnknownHostException e) {  }
    		port=_port;
    	}	
     
    public static boolean ping()
    	{	
    		setConnexion("192.168.7.1", 80);
     
    		if(connexion())
    		{
    			byte[] buffer = {'c', 'o', 'u', 'c', 'o', 'u'};
    			//String tmp="coucou";
    			try {
    				sRecup.getOutputStream().write(buffer, 0, buffer.length);
    			}
    			catch (IOException e) { return false; }
    			return true;
    		}
    		else
    			return false;
    	}
    Voici le MANIFEST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.INTERNET" />
    Le soucis semble être à la connexion. J'ai regardé pas mal de tutos mais rien, je ne trouve pas de solution. Peut être pourriez-vous m'aider?

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Déjà fais un "log" au lieu de renvoyer rien du tout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    catch (IOException e) { return false; }
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    catch (IOException e) { Log.e("CLIENT","Failed to connect !",e); return false; }
    Et cela est vrai pour tous les catch d'exception... si l'exception "disparait" => Log

    Ensuite... tu es en WiFi c'est cela ?
    Dans tous les autres cas (y compris emulateur): 192.168.7.1 ne marchera pas
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Aprés avoir ajouté Log, voici le résultat retourné par la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    01-30 14:20:31.560: E/CLIENT(5636): failed to connect
    01-30 14:20:31.560: E/CLIENT(5636): android.os.NetworkOnMainThreadException
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
    01-30 14:20:31.560: E/CLIENT(5636): 	at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
    01-30 14:20:31.560: E/CLIENT(5636): 	at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    01-30 14:20:31.560: E/CLIENT(5636): 	at libcore.io.IoBridge.connect(IoBridge.java:112)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.net.Socket.startupSocket(Socket.java:566)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.net.Socket.<init>(Socket.java:225)
    01-30 14:20:31.560: E/CLIENT(5636): 	at com.sarae.model.Reseau.connexion(Reseau.java:58)
    01-30 14:20:31.560: E/CLIENT(5636): 	at com.sarae.model.Reseau.ping(Reseau.java:89)
    01-30 14:20:31.560: E/CLIENT(5636): 	at com.sarae.MainActivity$1.onClick(MainActivity.java:30)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.view.View.performClick(View.java:4084)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.view.View$PerformClick.run(View.java:16966)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.os.Handler.handleCallback(Handler.java:615)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.os.Looper.loop(Looper.java:137)
    01-30 14:20:31.560: E/CLIENT(5636): 	at android.app.ActivityThread.main(ActivityThread.java:4745)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.lang.reflect.Method.invokeNative(Native Method)
    01-30 14:20:31.560: E/CLIENT(5636): 	at java.lang.reflect.Method.invoke(Method.java:511)
    01-30 14:20:31.560: E/CLIENT(5636): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    01-30 14:20:31.560: E/CLIENT(5636): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    01-30 14:20:31.560: E/CLIENT(5636): 	at dalvik.system.NativeStart.main(Native Method)

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Et voila... maintenant tu sais pourquoi...
    Tu fais tes appels réseaux dans le thread principal de l'application réservé à l'UI (et à l'interaction avec l'utilisateur).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Ah oui, en effet!
    Ça fonctionne enfin!

    Merci beaucoup pour l'astuce!
    Voilà un moment qu'on galère dessus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de me connecter à PhpPgAdmin
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 12
    Dernier message: 06/11/2007, 19h19
  2. [ postgresql] impossible de se connecter
    Par hocinema dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/07/2005, 11h10
  3. [Debutant]Impossible de se connecter au serveur local
    Par Kenji dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/04/2005, 19h55
  4. Impossible de se connecter avec aMSN
    Par Blowih dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 29/07/2004, 14h51
  5. [Connexion] impossible de se connecter autrement qu'en local
    Par sekiryou dans le forum Installation
    Réponses: 4
    Dernier message: 29/03/2004, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo