У меня есть клиент-серверное приложение, в котором сервер передает 4-байтовое целое число, указывающее, насколько большой будет следующая передача. Когда я читаю 4-байтовое целое число на стороне клиента (определяя FILE_SIZE), в следующий раз, когда я читаю поток, я получаю FILE_SIZE + 4 байта.
Нужно ли указывать смещение в 4 при чтении из этого потока, или есть ли способ автоматического продвижения NetworkStream, чтобы мое смещение всегда могло быть 0?
SERVER
NetworkStream theStream = theClient.getStream();
//...
//Calculate file size with FileInfo and put into byte[] size
//...
theStream.Write(size, 0, size.Length);
theStream.Flush();
КЛИЕНТ
NetworkStream theStream = theClient.getStream();
//read size
byte[] size = new byte[4];
int bytesRead = theStream.Read(size, 0, 4);
...
//read content
byte[] content = new byte[4096];
bytesRead = theStream.Read(content, 0, 4096);
Console.WriteLine(bytesRead); // <-- Prints filesize + 4