Как прочитать полные данные в QTcpSocket?
Теперь сервер (реализованный с помощью Java) будет отправлять мне некоторые потоковые данные, мой код выглядит так:
connect(socket, SIGNAL(readyRead()), this, SLOT(read_from_server()));
вread_from_server()
:
{
while (socket->bytesAvailable())
{
QString temp = socket->readAll();
}
}
но я обнаружил, что даже сервер отправил мне строку только с несколькими символами, данные усекаются, и моя функция вызывается дважды, таким образомtemp
это никогда не полные данные, которые я хочу.
Если сервер отправит мне более длинную строку, моя функция может быть вызвана три или более раз, поэтому мне будет трудно узнать, когда данные передаются полностью.
Так что кто-нибудь может сказать мне, как легко получить данные без лишних хлопот? Извините, если это дублируется другими вопросами, я не смогу заставить их ответы работать на меня. Большое спасибо!