У меня есть приложение на основе сокетов, которое предоставляет полученные данные с помощью объекта BinaryReader
на стороне клиента. Я пытался отладить проблему, когда данные, содержащиеся в считывателе, не чистые ... то есть буфер, который я читаю, содержит старые данные, превышающие размер новых данных.
В коде ниже:
System.Diagnostics.Debug.WriteLine("Stream length: {0}", _binaryReader.BaseStream.Length);
byte[] buffer = _binaryReader.ReadBytes((int)_binaryReader.BaseStream.Length);
Когда я закомментирую первую строку, данные не будут загрязнены (или не будут загрязнены так же регулярно), как когда я получаю это выражение для строки печати. Насколько я могу судить, со стороны сервера данные поступают чисто, поэтому возможно, что у моей реализации сокетов есть некоторые проблемы. Но есть ли у кого-нибудь идеи, почему добавление этой строки для печати приводит к более частому загрязнению данных?