Как прочитать полные данные в QTcpSocket?

Теперь сервер (реализованный с помощью Java) будет отправлять мне некоторые потоковые данные, мой код выглядит так:

connect(socket, SIGNAL(readyRead()), this, SLOT(read_from_server()));

вread_from_server():

{
    while (socket->bytesAvailable())
    {
        QString temp = socket->readAll();
    }
}

но я обнаружил, что даже сервер отправил мне строку только с несколькими символами, данные усекаются, и моя функция вызывается дважды, таким образомtemp это никогда не полные данные, которые я хочу.
Если сервер отправит мне более длинную строку, моя функция может быть вызвана три или более раз, поэтому мне будет трудно узнать, когда данные передаются полностью.
Так что кто-нибудь может сказать мне, как легко получить данные без лишних хлопот? Извините, если это дублируется другими вопросами, я не смогу заставить их ответы работать на меня. Большое спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос