Il y a un certain nombre de frais généraux liés par écrit à une prise réseau et l'envoi de données. Si des données étaient envoyées chaque fois que l'octet était entré dans le socket, vous obtiendriez 40 octets d'en-tête TCP pour chaque octet de données réelles. (En supposant que vous utilisez une socket TCP, bien sûr, les autres sockets auront des valeurs différentes). Afin d'éviter une telle inefficacité, le socket maintient un tampon local, qui est généralement un peu plus de 1000 octets. Lorsque ce tampon est rempli, un en-tête est enroulé autour des données et le paquet est envoyé à sa destination.
Dans de nombreux cas, vous n'avez pas besoin chaque paquet à être envoyés immédiatement; Si vous transférez un fichier, les premières données peuvent ne pas être utiles sans les données finales du fichier, cela fonctionne donc bien. Si vous devez forcer l'envoi immédiat des données, le vidage du tampon enverra toutes les données qui n'ont pas encore été envoyées.
Notez que lorsque vous fermez une prise, il évacue automatiquement toutes les données remaning, donc il n'y a pas besoin de rincer avant de fermer.
Comment NAGL est-elle liée à cela, le savez-vous? – rogerdpack
bonne réponse .... – goh