Сабж. Есть клиент и сервер, оба на qt. Во время авторизации клиент синхронно коннектится (успешно), синхронно передаёт данные длиной 32 байта (успешно) и так-же синхронно ждёт ответа.
Сервер успешно клиента коннектит, переданные данные парсит и отдаёт ответ размером 5 байт.
2 байта - размер данных (unsigned short int)
2 байта - опкод (unsigned short int)
1 байт - булевое значение
Вся проблема в том, что из этих 5 байт приходят только 3, сколько долго бы я не ждал. Если отправлять больше - всё-равно только 3 байта. Трафик парсил, с сервера отсылается только 1 пакет с данными. Куда копать?
QByteArray authAnsewer;
QDataStream out(&authAnsewer, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_8);
out << (opcode)op_auth_ans << true;
send(&authAnsewer);
void Player::send(QByteArray *data)
{
QByteArray sendedData;
QDataStream out(&sendedData, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_8);
tcp_size size = (tcp_size)data->size();
out << size << data;
qDebug() << "size: " << size;
socket->write(sendedData);
}