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

 C Discussion :

probleme avec strcmp()


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 63
    Par défaut probleme avec strcmp()
    Bonjour,
    je suis entrain de codé un petit serveur, et l'une de mes consignes est de déconnecter le client(j'utilise telnet) lors qu'il tape le mot QUIT.
    mon problème est lorsque j’essaie de reconnaître ce mot avec strcmp(), ca me retourne toujours 1.

    voici la partie du code concernée :
    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
     
    /* attente de la reception d'un block */
             char data[128];
             int sock_err = recv (p_cli->sock, data, (sizeof data -1), 0);
     
    	 /*renvoie de chaque reception*/
    	 char retour[128] ="RCPT ";
    	 strcat(retour, data);
             send (p_cli->sock, retour, strlen (retour), 0);
    	 fflush (stdout);
     
             if (sock_err != SOCKET_ERROR)
             {
                size_t nb_rec = sock_err;
                if (nb_rec > 0)
                {
    	       data[nb_rec]=0;
                   printf ("%d bits recu:\n'%s'\n", nb_rec, data);
    	       fflush (stdout);
                   if (strcmp (data, "QUIT\n") == 0)
                   {
    		  char const response2[] = "OLEH\n";
                      send (p_cli->sock, response2, strlen (response2), 0);
                      puts ("Demande de deconnection");
                      end = 1;
                   }
    Lorsque j'affiche les 6 premiers caractère du tableau 'data', j'obtient 81 85 73 84 13 10 ce qui signifie QUIT\0\n .
    J'espère que j'ai été assez clair et merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 450
    Par défaut
    Bonjour,

    « 13 10 » ne signifie pas « \0\n » mais « \r\n ». Ce sont les codes de retour à la ligne utilisés sous D.O.S. et les systèmes qui ont suivi. Il t'appartient donc de les détecter et les effacer si nécessaire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 63
    Par défaut
    Merci, beaucoup cela à régler mon problème.
    je pensais que le fait d'écrire "QUIT\n" les ajoutais automatiquement.

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

Discussions similaires

  1. probleme de comparaison avec strcmp
    Par wolverine1987 dans le forum Visual C++
    Réponses: 20
    Dernier message: 18/06/2009, 11h48
  2. probleme avec un strcmp
    Par innosang dans le forum C
    Réponses: 3
    Dernier message: 17/11/2006, 16h11
  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