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 Discussion :

Requêtes ICMP impossibles


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut Requêtes ICMP impossibles
    Bonjour tout le monde,

    Voila mon soucis:
    Je suis actuellement en train de développer une application de monitoring de serveur. Pour cela j'ai besoin d'effectuer une requête ICMP à partir d'un mobile sous Android 1.5.

    Voici le code que j'ai pour l'instant:

    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
     
        public void onClick(View view) {
     
            if (view == BtValid) {
                TVmsg.setText("Requête en cours...");            
                try {
                    Inet4Address ip = (Inet4Address)Inet4Address.getByName(ETip.getText().toString());        
                    if(ip.isReachable(200)){
                        TVmsg.setText("Le serveur répond bien");
                    }
                    else{
                        TVmsg.setText("Le serveur avec l'IP: "+ip.getHostAddress() +" ne répond pas");
                    }
                } catch (UnknownHostException e) { 
                    TVerr.setText("Le serveur est inconnu");
                    TVmsg.setText("Requête echouée.");
                } catch (IOException e) {                
                    TVerr.setText(e.getLocalizedMessage());
                    TVmsg.setText("Requête echouée.");                
                }                    
     
            }
        }
    Ce code fonctionne lorsque j'entre "Localhost" en paramètre. Cependant lorsque je met "google.fr", cela me renvoi que le serveur ne répond pas tout en me donnant l'adresse IP du serveur.

    Je me demandais si ce n'était pas une histoire d'autorisation. Je vous donne donc mon manifest.xml:

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.cyrilmottier.android.tutorial4"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".EntryPoint"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <activity android:name=".Ping"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.DEFAULT" />
                </intent-filter>
            </activity>
     
        </application>
        <uses-permission android:name="android.permission.INTERNET" />
     
        <uses-sdk android:minSdkVersion="3" />
    </manifest>
    Pouvez vous me donner une piste car je bloque la dessus depuis un bon moment .

    Merci beaucoup !

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Et tu as configuré l'accès à internet sur ton émulateur / téléphone portable ?

  3. #3
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    j'ai testé l'application sur mon téléphone portable directement. Mon téléphone est bien configuré. Mais j'ai aussi testé l'application sur l'émulateur en obtenant le même résultat.

    J'ai déjà testé d'autre applications qui utilisaient Internet pour fonctionner sans avoir de soucis.

    Je pensais qu'il fallait juste configurer le fichier manifest.xml pour les autorisations je pense qu'il a quand même accès à Internet car lorsque je test le programme, la résolution du nom de domaine fonctionne. En effet, il m'affiche correctement l'adresse IP.

    Merci beaucoup !

  4. #4
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Bon, j'ai un peu progressé. J'ai re-développé la fonction isReachable() comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public boolean isReachable(InetAddress host) {
     
            try {
                Socket s = new Socket();
                s.bind(null);
                s.connect(new InetSocketAddress(host, 80));
                s.close();
                return true;
            } catch (IOException e) {
                TVerr.setText(e.getMessage());
            }
     
            return false;
        }
    Je ne comprend pas trop car celle-ci fonctionne sur mon émulateur mais pas sur mon téléphone ...
    Quelqu'un aurait-il une idée ?
    Encore merci pour ton aide

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Tu as regardé les options du developpement dans ton telephone?
    C'est bizzare que ca fonctionne sur l'emulateur sans le telephone.
    Peut etre que ta connection au mobile n'est pas bien adapté ou faible.

  6. #6
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Merci beaucoup, en effet, le problème provenait d'un mauvais débit. Merci beaucoup pour votre aide.

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

Discussions similaires

  1. [Smarty] boucles imbriquées avec requêtes SQL, impossible à comprendre
    Par dexxter dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 18/05/2007, 23h52
  2. ORA-00922: requête système impossible
    Par scorplex dans le forum Administration
    Réponses: 2
    Dernier message: 26/04/2007, 16h58
  3. Réponses: 4
    Dernier message: 04/08/2005, 08h23
  4. Réponses: 8
    Dernier message: 14/01/2005, 09h06
  5. [Requête] Difficile (impossible ?) avec des dates
    Par starch dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/04/2004, 11h26

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