J'ai quelques questions sur la bibliothèque de sockets en C. Voici un extrait de code auquel je ferai référence dans mes questions.
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- Comment décider de la taille de recv_buffer? J'utilise 3000, mais c'est arbitraire.
- que se passe-t-il si
recv()
reçoit un paquet plus gros que mon tampon? - comment puis-je savoir si j'ai reçu le message entier sans appeler à nouveau recv et le faire attendre indéfiniment alors qu'il n'y a rien à recevoir?
- y a-t-il un moyen de faire en sorte qu'un tampon n'ait pas une quantité fixe d'espace, de sorte que je puisse continuer à y ajouter sans craindre de manquer d'espace? peut-être en utilisant
strcat
pour concaténer la dernièrerecv()
réponse au tampon?
Je sais qu'il y a beaucoup de questions en une, mais j'apprécierais beaucoup les réponses.