Нет, я понимаю что он может не полностью прийти. Однако как тогда определять его конец? Да и bytesAvailable() < 6, в теории заголовок то дойти должен чтобы уже определить каков реальный размер? Хотя если он не дошел полностью то и декриптор не сработает верно.
Все, я понял в чем моя ошибка. TCP/IP же посылает данные потоково, нет гарантий что пакет придет именно в таком виде в котором был отправлен.
Приду домой, попробую вариант такой
1) Чтение заголовка
2) Ожидание тела пакета по размеру из заголовка
3) Чтение и обработка тела
4) Срез данных из буффера
Ну и это все в цикле.