fonction send() recv() et fragmentation des paquets TCP
Bonsoir tous le monde,
je programme actuellement un client et un serveur dans le but de créer un chat.
Coté serveur (bout de code faisant parti d'une fonction, elle meme lancer via plusieurs thread):
Code:
1 2 3 4 5 6 7 8 9
|
while(1){
//Pause de 3 secondes entre chaque envoi
Sleep(3000);
//Envoi de la liste des peers
send(client, a->liste.peerlistToString().c_str(), a->liste.peerlistToString().size()+1, 0);
} |
Coté client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| while(1){
//Reception de la liste des peers
recv(sock, buffer, sizeof(buffer), 0);
//Pause de 1 seconde entre chaque "rafraichissement de console"
Sleep(1000);
system("CLS");
//Affichage de la liste
cout<<"Connected peer(s) : ";
cout<<(string)buffer<<endl;
} |
Ma question : le faite que j'attende 3 secondes entre chaque send() va-t-il empêcher une éventuelle fragmentation des paquets TCP ?
car si j'envoie genre 1000 caractères d'un coup, mon code coté client avec le recv() ne vas plus fonctionner correctement,
il faudrait donc que je recupere chaque octet un par un via un do while ?