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 :
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 .
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; }
J'espère que j'ai été assez clair et merci d'avance pour votre aide.
Partager