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

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

Войти через центр авторизации
Похожие вопросы
SDT Москва
от 100 000 до 160 000 ₽
Graebert Санкт-Петербург
До 3 000 $
МТТ Москва
от 100 000 ₽
24 сент. 2020, в 02:31
700 руб./в час
24 сент. 2020, в 01:04
20000 руб./за проект
23 сент. 2020, в 23:49
500 руб./за проект