Мне было интересно, есть ли какой-либо метод или свойство, которые позволяют нам видеть, есть ли доступные байты для чтения в потоке, связанном с BinaryReader
(в моем случае это NetworkStream , поскольку я выполняю TCP-связь). Я проверил documentation, и единственный метод, который я видел, - PeekChar()
, но он проверяет только, есть ли следующий байт (символ), поэтому в случае, если есть много байтов для чтения, создание цикла while
для увеличения счетчика может быть inneficient.BinaryReader C# - Проверьте, остались ли байты
Что касается связи TCP, проблема в том, что протокол приложения по TCP не был определен мной, и я просто пытаюсь выяснить, как это работает! Конечно, будет какое-то «поле длины», которое даст мне несколько подсказок о прочитанных байтах, но я знаю, что я просто проверяю, как это работает, и этот вопрос пришел мне на ум.
TCP - это протокол потоковой передачи ... не уверен, что вы имеете в виду, но «длина» в значительной степени противоположна определению 'streaming'. 'BinaryReader' - это всего лишь оболочка вокруг потока протокола. – atlaste
Ммм ... Извините, но я не понимаю вашу точку зрения! – Biurrun
Что вы планируете делать, если есть _aren't_ любые доступные байты прямо сейчас? Это не означает, что больше не будет ... –