J'ai quelques questions sur la bibliothèque socket en C. Voici un extrait de code auquel je me référerai 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 grand que ma mémoire tampon ? - Comment puis-je savoir si j'ai reçu l'intégralité du message sans appeler recv à nouveau et le faire attendre indéfiniment alors qu'il n'y a rien à recevoir ?
- Existe-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 à l'alimenter sans craindre de manquer d'espace ?
strcat
pour concaténer les derniersrecv()
la réponse au tampon ?
Je sais que cela fait beaucoup de questions en une seule, mais j'apprécierais beaucoup les réponses.