Kun vastaanotan socketin dataa recv() funktiolla, serveri lähettää sitä määrätyn ajoin ja toki pyrin lukemaan sitä mahdollisimman nopeasti. Mieleeni vain heräsi teoreettinen kysymys;
Mihin ja kuinka paljon recv() vastaanotettavaa dataa varastoituu johonkin siihen asti kunnes se luetaan?
Luultavasti ottaa dataa niin pitkään vastaan, kunnes kiintolevy on täynnä.
Linuxissa ne on säädettävissä:
Puskurien koko riippuu käyttöjärjestelmästä ja sen asetuksista; yleensä on kyse sadoista kilotavuista. Puskurit ovat ihan tavallisessa muistissa, eli mitään niille omistettuja mikropiirejä ei ole eikä kovalevy todellakaan ole ensisijainen tallennuskohde. (Nimim. mrkebab voisi vähän miettiä, mitä vastaa kysymyksiin vai vastaako ollenkaan, jos ei kerta kaikkiaan tiedä.)
UDP:ssä puskurin täytyttyä ylimääräiset paketit vain häviävät. TCP:ssä on mekanismeja, joilla estetään liian datan lähettämistä, ja viime kädessä send-kutsu joko pysähtyy odottamaan tai palauttaa virhekoodin, jolloin on taas ohjelman asia huolehtia, että lähetystä yritetään tarvittaessa myöhemmin uudestaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.