@Sazoks

Почему не срабатывает сигнал в Qt?

В потоке создаю сокет и делаю коннект:
mTcpSocket = new QTcpSocket;
mTcpSocket->setSocketDescriptor(mSockD);
connect(mTcpSocket, &QTcpSocket::readyRead, this, &Listener::SlotMessageAccepted);

Т.е. при получении данных вызывается метод для их обработки.
Проблема в том, что когда сервер высылает данные, эта штука не работает...
Но данные точно поступают в сокет!
Когда вышеуказанного кода я написал это:
QByteArray Block;
_sock->waitForReadyRead();
while (_sock->bytesAvailable() > 0)
    Block.append(_sock->readAll());

Данные поступали и записывались в Block. Т.е. проблема, как я понимаю, не в доставке данных, а в коннекте.
Но как исправить проблему?
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sazoks Автор вопроса
Я понял, в чем проблема. Проблема в том, что все приходящие данные уходят в сокет, который находится в главном потоке, а до сокета в другом потоке просто ничего не доходят.
Скажите, можно ли как-то указать сокетам, чтобы они либо только читали, либо только отправляли данны?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы