Verständnis Netzwerk Sockets

C

Crymes

Guest
Verständnis Netzwerk Sockets

Hallo,
wenn ich per UDP oder TCP Daten empfangen will, muss ich ja in C++ oder Java die Receiver Funktion aufrufen, die mir dann meinen Puffer mit empfangenen Daten füllt und bis er voll ist blockierend ist.

Werden die empfangenen Daten eigentlich vom Betriebssystem zwischengespeichert ? Also wenn ich meine Receiver Funktion erst Aufrufe wenn die Daten schon gesendet worden sind, empfange ich dann noch was ?
(Wenn ja weiß jemand wie viel Daten wie lange ungefähr zwischengespeichert werden?)

Wenn nicht ist es eine gute Idee für jeden Socket einen eigenen Thread aufzumachen der nichts anderes macht als die Receiver Funktion immer wieder aufzurufen und die Daten in meinen eigenen Puffer zu schreiben?
 
AW: Verständnis Netzwerk Sockets

Werden die empfangenen Daten eigentlich vom Betriebssystem zwischengespeichert ? Also wenn ich meine Receiver Funktion erst Aufrufe wenn die Daten schon gesendet worden sind, empfange ich dann noch was ?
(Wenn ja weiß jemand wie viel Daten wie lange ungefähr zwischengespeichert werden?)

Ja, Windows speichert ankommende Pakete solange, bis der dafür zugewiesene Speicher voll ist. Logischerweise erst nachdem du erklärt hast, dass der Socket Pakete annehmen soll.
Soweit ich das sehe, stehen dafür (standard) 8kb zur Verfügung.

Change default socket buffer size under Windows - Stack Overflow
c - Winsock UDP packets being dropped? - Stack Overflow
 
Zurück