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

Android Studio Java Discussion :

difficultés avec ping android studio


Sujet :

Android Studio Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 16
    Points : 15
    Points
    15
    Par défaut difficultés avec ping android studio
    Bonjour à tous,
    J'ai une appli android qui ouvre une socket pour envoyer des données à un programme situé sur un pc.
    Quand j'ouvre une socket avec un mauvais n° de IP, il n'y a pas d'exception mais les données n'aboutissent pas.
    Donc, je voudrais vérifier que l'adresse IP désirée est effectivement utilisée.
    Le pb, c'est que le test effectué (voir ci-dessous) donne toujours une réponse négative (serveur pas OK) alors que je teste en sachant que l'adresse 192.168.x.y est utilisable.
    Par contre, cela fonctionne bien avec l'adresse localhost 127.0.0.1
    Quelqu'un peut-il me dire ce qui ne va pas dans le code?
    Voici le code:
    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
    49
    50
    51
    52
    53
    54
        public OnClickListener Check2_Listener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                Thread t = new Thread() {
                    @Override
                    public void run() {
                    InetAddress in;
                    in = null;
     
                try {
                    in =InetAddress.getByName(SERVER_IP);
                    final InetAddress finalIn = in;
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            MessageOK.setText(finalIn.toString());
                        }
                    });
                } catch (IOException e) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            MessageOK.setText("ioe");
                        }
                    });
                }
                try {
                    if (in.isReachable(5000)) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                MessageOK.setText("Serveur OK.");
                            }
                        });
                    } else {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                MessageOK.setText("Serveur pas OK.");
                            }
                        });
                    }        } catch (IOException e) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            MessageOK.setText("ioe.");
                        }
                    });
                }
                    }
                };
                t.start();
            }
        };
    Dans l'attente de vous lire.
    Passy261

  2. #2
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Suite de mon pb:
    En fait, tout marche bien si je coupe le pare feu dans windows 10.

    Du coup, j'ai cherché à autoriser les echos ping dans le pare feu. On trouve sur internet la méthode. J'applique la méthode, et cela ne marche quand même pas.

    Donc, la question devient: pourquoi mon prog ne fonctionne pas alors que j'ai autorisé les echos dans le pare feu?
    Merci pour vos contributions.
    Passy261

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Quand j'ouvre une socket avec un mauvais n° de IP, il n'y a pas d'exception mais les données n'aboutissent pas.
    Une socket lève une IOException si elle n'a pas réussie à se connecter.

    Tu peux éventuellement spécifier un timeout en procédent ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Socket socket = new Socket();
    socket.connect(new InetSocketAddress(addr, port), timeout);
    connect() lèvera également une IOException en cas d'impossibilité de se connecter.

    Si aucune exception n'est levé c'est que le port en question est ouvert sur la mauvaise ip que tu contact.Ce qui veux dire que tu utilise un port générique au lieu de passer par un port plus spécialisé ( > 1024) . C'est au moment de la communication que tu pourras détecter que ça ne vas plus puisque les deux entité ne se comprendrons plus.

    Vouloir utiliser un ping est utopique, une partie des appareils ni réponde pas , des éléments réseaux ne les laisse pas passer , etc ...
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Merci pour ta réponse.
    Effectivement, je n'ai pas avancé avec mon idée de ping.
    L'idée du timeout fonctionne très bien dans mon cas.
    Merci encore.
    Je coche "résolu"
    Passy261

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2014, 17h29
  2. probleme avec android studio
    Par kapac dans le forum Android Studio
    Réponses: 0
    Dernier message: 24/04/2014, 15h04
  3. Probleme de compillation sur Android Studio avec emulateur
    Par petitdede dans le forum Android Studio
    Réponses: 2
    Dernier message: 15/04/2014, 18h06
  4. Réponses: 0
    Dernier message: 23/01/2014, 16h38

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