Во-первых, вы абсолютно не должны читать символьные данные таким образом. Вы предполагаете, что ваш байтовый массив всегда содержит целое количество символов. Вместо этого вы должны использовать StreamReader
, который предназначен для этого.
Если вы абсолютно должны читать непосредственно из потока, используйте один экземпляр Decoder
, который может обрабатывать эти частичные символы, буферизуя их для следующего преобразования.
Теперь вам также требуется , что numbytesread > 1
- что если это ровно 1? Почему вы хотите игнорировать это?
Также не ясно, для чего нужна ваша временная метка ... разве поток не будет блокировать до бесконечности , пока не получит некоторые данные? Или вы явно настроили его на тайм-аут чтения?