Salut,
J'ai une question théorique à vous poser :
Pour recevoir une chaine char* avec les sockets on utilise :
recv(SOCKET, char* , int, int);
Je voudrait savoir ce qui se passe si la taille indiquée (3ème paramètre) dépasse la taille de la chaine qui se trouve dans le tampon de reception.
Est ce que dans ce cas ça ne peut pas recupérer une partie de la chaine suivante : Ou est ce que la fonction recv() arrête de recevoir les carctères lorsqu'elle rencontre un 0 (caractère nul).
Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| send(csock,"coucou!!",9,0); //envoi de la chaine1
send(csock,"ça va?",7,0); //envoi de la chaine2
//la reception se fait une fois que les 2 chaines ont été envoyées
recv(sock,buffer,11,0); //le buffer reçoit :
// "coucou!!\0ça"
// "coucou!!\0(+2caractères quelconque)"
// ou juste "coucou!!\0" ???
recv(sock,buffer,7,0); //le buffer reçoit :
//la suite de la chaine2 (" va?\0(+2caractères quelconque)"
//" va?"
// ou juste "ça va?" ??? |
Merci de répondre a mes questions
Partager