Я пишу программу Qt / C ++, которая получает данные из сокета. Я обнаружил, что теряю сигнал readyRead, потому что мой слот слишком долго анализирует поступающие данные. Так что теперь я свел это к минимуму:
void test::inputAvailable()
{
while (m_tcpSocket->bytesAvailable())
m_inputBuffer += m_tcpSocket->readAll();
emit(datawaiting());
}
Мои вопросы:
я прочел этот похожий вопрос но никто не дал реального ответа.
Зачем делиться глобальными переменными, вводить синхронизацию и т. Д., Когда вы можете просто прочитать переменную и передать ее обработчику.
void test::inputAvailable()
{
while (m_tcpSocket->bytesAvailable())
QByteArray data += m_tcpSocket->readAll();
emit datawaiting(data);
}