Ответ: Непонятки с TCP/IP
Сразу отвечаю, не читаю.
Ты проверяешь длину буффера так? А буффер уже создан давно, и ты лишь записываешь в него прочтённые данные так? Значит длина у него не будет соответствовать на самом деле длине принятых данных.
Плюс ты вроди как переиспользуешь буффер для приёма заголовка (4 байта) и затем в него же читаешь само сообщение, так?
Получается что в определённом сценарии, при попытки прочитать 4 байта заголовок, ничего не было прочитано, и в буфере будет 4 байта с прошлого буффера сообщения.
Если я ничего не упустил - это твоя проблема описана выше.
Она заключается в правильной проверке принятых данных и корректной реакции на не соответствия.
|