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

Réseau C Discussion :

[C] - probleme avec le ping


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut [C] - probleme avec le ping
    Bonjour,

    qd je fais le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("ping 12.12.12.12");
    Le programme ne rend jamais la main, 12.12.12.12 etant une addresse qui n'existe pas, je voudrai savoir si on peut forcer ping a rendre la main parce que ca bloque tout le code qui suit.

    Merci beaucoup!

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par toxycyty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("ping 12.12.12.12");
    Le programme ne rend jamais la main, 12.12.12.12 etant une addresse qui n'existe pas, je voudrai savoir si on peut forcer ping a rendre la main parce que ca bloque tout le code qui suit.
    Quel rapport avec le langage C ?

    <Hors Sujet>
    En principe, ping gère un timeout qui fait que si le dns (pas ici) ou l'IP distante ne répond pas, le programme s'arrête.

    Il y a peut être un paramètre pour régler ce timeout si tu le trouves trop long... Il faut lire la doc de ton ping, mais rien ne dit que ce soit portable...

    Citation Envoyé par ping sous XP
    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\dev\forums2>ping --help
    Option incorrecte --help.


    Utilisation : ping [-t] [-a] [-n échos] [-l taille] [-f] [-i vie] [-v TypServ]
    [-r NbSauts] [-s NbSauts] [[-j ListeHôtes] | [-k ListeHôtes]]
    [-w Délai] NomCible

    Options :
    -t Envoie la requête ping sur l'hôte spécifié jusqu'à
    interruption.
    Entrez Ctrl-Attn pour afficher les statistiques et continuer,
    Ctrl-C pour arrêter.
    -a Recherche les noms d'hôte à partir des adresses.
    -n échos Nombre de requêtes d'écho à envoyer.
    -l taille Envoie la taille du tampon.
    -f Active l'indicateur Ne pas fragmenter dans le paquet.
    -i vie Durée de vie.
    -v TypServ Type de service.
    -r NbSauts Enregistre l'itinéraire pour le nombre de sauts.
    -s NbSauts Dateur pour le nombre de sauts.
    -j ListeHôtes Itinéraire source libre parmi la liste d'hôtes.
    -k ListeHôtes Itinéraire source strict parmi la liste d'hôtes.
    -w Délai Délai d'attente pour chaque réponse, en millisecondes.


    C:\dev\forums2>
    </>

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Par défaut
    Je trouve curieux que ping ne se termine jamais. En revanche, il peux arriver qu'il soit long...
    Sinon, l'appel system() n'est pas ce qu'il y a de mieux car durant son exécution, les signaux SIGINT et SIGQUIT sont ignoré, ce qui rend le programme inintéruptible. Il vaut mieux utiliser les fonction de la famille de execve en les appelant dans un autre processus...

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sous Windows, ping peut être très long mais fait toujours quatre essais par défaut.
    Sous les unixoïdes que je connais, ping ne rend jamais la main, qu'il réussisse ou non, à moins qu'on limite explicitement le nombre d'envois dans les paramètres.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre chevronné Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Par défaut
    Citation Envoyé par toxycyty
    Le programme ne rend jamais la main, 12.12.12.12 etant une addresse qui n'existe pas <...>
    Tu dois sûrement ne pas travailler sur Windows ... Bon pour le ping, et tout autre commande, tu commences par faire :
    Ensuite tu auras (pour man ping) ceci :
    Citation Envoyé par man ping
    PING(8) System Manager's Manual: iputils PING(8)

    NAME
    ping, ping6 - send ICMP ECHO_REQUEST to network hosts

    SYNOPSIS
    ping [ -LRUbdfnqrvVaAB] [ -c count] [ -i interval] [ -l preload] [
    -p pattern] [ -s packetsize] [ -t ttl] [ -w deadline] [ -F flowla-
    bel] [ -I interface] [ -M hint] [ -Q tos] [ -S sndbuf] [ -T times-
    tamp option] [ -W timeout] [ hop ...] destination
    <...>
    Et si regarde plus bas tu trouves :

    Citation Envoyé par man ping
    -c count
    Stop after sending count ECHO_REQUEST packets. With deadline
    option, ping waits for count ECHO_REPLY packets, until the time-
    out expires.
    Donc pour faire comme windows, tu fais

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

Discussions similaires

  1. Ping probleme avec ReplyStatus
    Par cchasse98 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/02/2014, 14h16
  2. Problème avec ifconfig, ping... sous linux
    Par boubouc dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 12/02/2006, 16h15
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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