Здравствуйте. Читаю данные из сокета по сигналу readyRead. Но не могу понять одно, почему данные приходят не полностью. Вернее сами данные приходят, то полностью но как-то частями что ли... К примеру сервер посылает такие данные(очередность пакетов):
1.Привет
2.Как
пауза в отправке данных 3.Дела
Пока не будет отправлен пакет #3 я не увижу данных пакета 1 и 2. Пробовал устанавливать буфер setReadBufferSize но это ничего не дает. Как я понимаю тут как только приходят данные, то срабатывает сигнал readyRead? Но почему тогда происходит такая ситуация?
void MainWindow::on_data()
{
QByteArray data=tcpSocket->readAll();
.... Какая-то обработка данных....
}
Ранее я работал с сокетами в Java и C# и делал так и без проблем получал все порции данных сразу, даже если приходила часть отправленного пакета:
int receivedBytes;
byte[] dataBuffer = new byte[Session.BUFFER_SIZE];
InputStream stream=mTcpClient.getInputStream();
while ((receivedBytes = stream.read(dataBuffer, 0, dataBuffer.length)) != -1) {
обработка_данных(dataBuffer, receivedBytes);
}
Как сделать подобное в QT5? Спасибо.