Ich weiß nicht ob ich gerade auf dem Schlauch stehe aber angenommen ich will eine Applikation schreiben mit der 2 Benutzer miteinander chatten können und stelle dazu eine Socketverbindung her und lege eine NetworkStream Instanz damit an.
Jetzt kann ich darüber ja einfach Daten hin und her schicken, aber woher weiß ich auf der einen Seite das die andere jetzt Daten gesendet hat die ich lesen muss? Es gibt ja kein Event oder so dafür.
Wann man senden muss ist ja klar, sobald der Benutzer etwas eingegeben hat aber fürs empfangen fällt mir nur die DataAvailable Property des NetworkStreams auf, welche aber ja bedeuten würde das man ständig in einer Schleife darauf abfragen müsste und das würde (im besten Fall nur) das Senden blockieren. Ich bezweifle mal einfach das man aus 2 verschiedenen Threads gleichzeitig schreiben und lesen kann.
Jeweils eine Socketverbindung zum Lesen und Schreiben finde ich auch nicht ansprechend. Die einzige Möglichkeit die mir noch einfallen würde wäre das immer abwechselnd etwas geschickt wird bzw. wenn gerade nichts eingegeben wurde ein leerer Buffer gesendet wird (oder etwas das verworfen wird) aber das produziert ja unnötig Verkehr...