Здравствуйте! Столкнулся со следующей проблемой:
В локальной сети есть сервер, который по определённому порту отсылает данные в виде строки текста, которые содержат дату создания. Данные посылаются нерегулярно, но в среднем 3-5 строк в секунду. Необходимо написать тулзу, которая бы эти данные принимала, парсила и выдавала результат.
// создание сокета:
QTcpSocket *tcpSocket = new QTcpSocket( this );
connect(tcpSocket, SIGNAL( readyRead() ), this, SLOT( slotReadData() ) );
connect( tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError)) );
tcpSocket->connectToHost( "ip-адрес", порт );
// slotReadData()
void FirstWindow::slotReadData()
{
QByteArray ba;
ba = tcpSocket->readLine( tcpSocket->bytesAvailable() );
qDebug() << ba;
}
В принципе всё работает, но приложение не успевает обрабатывать приходящие данные. Если после старта приложения время получения строки почти совпадает с временем её создания, то минут через 10, разница составляет 2-3 минуты.
В чём может быть причина?