Так, смотрим дальше:
for (;;) {
if (!blockSize) {
if (TcpSocket->bytesAvailable() < sizeof(quint16)) {
break;
}
in >> blockSize;
}
if (TcpSocket->bytesAvailable() < blockSize) {
break;
}
in >> str;
blockSize = 0;
}
Получается, чуть что не так, посылаем все подальше, а кто будет ждать прихода сообщения? А если оно вообще частями будет идти?