Ich frage mich, ob es eine Methode oder Eigenschaft gibt, mit der wir sehen können, ob es Bytes gibt, die im Stream einer BinaryReader
zu lesen sind (in meinem Fall ist es ein NetworkStream) , da ich eine TCP-Kommunikation durchführe). Ich habe die documentation überprüft und die einzige Methode, die ich gesehen habe, ist PeekChar()
, aber es prüft nur, ob es ein nächstes Byte (Zeichen) gibt, so dass im Falle, dass viele Bytes zu lesen sind, eine while
Schleife einen Zähler erhöhen kann innezient.BinaryReader C# - Überprüfen, ob noch Bytes übrig sind
In Bezug auf die TCP-Kommunikation ist das Problem, dass das Anwendungsprotokoll hinter dem TCP nicht von mir definiert wurde, und ich versuche nur herauszufinden, wie es funktioniert! Natürlich wird es ein "Längenfeld" geben, das mir einige Hinweise über die zu lesenden Bytes geben wird, aber ich weiß, ich überprüfe nur, wie es funktioniert und diese Frage kam mir in den Sinn.
TCP ist ein Streaming-Protokoll ... nicht sicher, was Sie meinen, aber "Länge" ist ziemlich genau das Gegenteil der Definition von "Streaming". 'BinaryReader' ist nur ein Wrapper um den Protokoll-Stream. – atlaste
Mmm ... Es tut mir leid, aber ich verstehe deinen Standpunkt nicht! – Biurrun
Was möchten Sie tun, wenn gerade keine Bytes verfügbar sind? Das bedeutet nicht, dass es nicht mehr kommt ... –