Ich verwende einen BinaryReader über einem NetworkStream, um Daten aus einem Netzwerk zu lesen. Das hat wirklich gut für mich funktioniert, aber ich möchte verstehen, was hinter den Kulissen vor sich geht, also habe ich mir die Dokumentation für BinaryReader angeschaut und herausgefunden, dass sie extrem spärlich ist.Was macht BinaryReader, wenn die gelesenen Bytes noch nicht vorhanden sind?
Meine Frage ist dies: Was wird BinaryReader.ReadBytes(bufferSize)
tun, wenn bufferSize
Bytes nicht im Netzwerkstream vorhanden sind, wenn ich ReadBytes
aufrufen?
In meinem Kopf gibt es ein paar Optionen:
1) alle Bytes lesen, die auf dem Netzwerk-Stream vorhanden sind und nur zurück, dass viele
2) Warten Sie, bis bufferSize
Bytes vorhanden auf dem Strom sind, dann lesen Sie
3) Werfen Sie eine Ausnahme
Ich gehe davon aus, Option 2 passiert, da ich noch keine Ausnahmen erhalten habe und alle meine Daten empfangen werden, nicht in Stücken. Ich würde jedoch gerne wissen, was vor sich geht. Wenn mich jemand aufklären könnte, wäre ich dankbar.
Es wird blockieren und sicherstellen, dass Sie die angeforderte Anzahl von Bytes erhalten. Sie erhalten nur weniger, wenn der Stream geschlossen wurde und Sie alle gelesen haben. –