Laden...

NetworkStream.Write - Blockiert die Write-Methode irgendwann wenn der Sendepuffer voll ist?

Erstellt von Stu42 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.100 Views
S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 7 Jahren
NetworkStream.Write - Blockiert die Write-Methode irgendwann wenn der Sendepuffer voll ist?

Hi,

ich habe mal eine grundlegende Frage zur Netzwerkkommunikation.

Da eine TCP-Verbindung ja selbst auf die Daten "aufpasst" brauche ich ja nicht
unbedingt
eine Lesebestätigung von Teildaten in "meinem" protokoll. Wenn ein Fehler in der
Kommunikation auftritt werde ich wohl einen Verbindungsabbruch bekommen.

Mal angenommen ich möchte nun große Daten pro Zeiteinheit auf den NetzwerkStream
schreiben, so rufe ich oft NetworkStream.Write auf.
Meine Frage nun: Blockiert die Write-Methode irgendwann wenn der Sendepuffer voll ist?

Würde ich die Socket-Funktion "send" von Windows aufrufen, würde ich als Rückgabewert
ja die bytes bekommen, welche von der send-Funktion abgenommen wurden. Da
die NetworkStream.Write-Funktion jedoch nicht diesen Rückgabewert hat müsste sie ja blockieren...

Grüße, Stu

D
985 Beiträge seit 2014
vor 7 Jahren

Was sagt denn die Dokumentation dazu?

S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 7 Jahren

ah, auf der Doku-Seite war ich gestern auch schon... hab ich überlesen, war der tag wohl zu lang 😃

Danke 😃

W
872 Beiträge seit 2005
vor 7 Jahren

Bei TCP solltest Du Dich nicht auf das Protokoll alleine verlassen.
Insbesondere wenn Du ein Netzwerkproblem hast, dann weißt Du nie, was in der Applikation tatsächlich angekommen ist oder nicht, da Du nach Deinem Write irgendwann später einen Timeout bekommst.