Дмитрий
ДмитрийҚар. 9, 2021, 8:46 Т.Ж.

Сигнал QTcpSocket::readyRead()

signals, QTcpSocket

Всем привет.
Есть класс, в котором есть объект класса, работающий с QTcpSocket. Этот класс создается в main():

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    MController mc;
    mc.set_ip(ip);
    mc.set_password(password);
    mc.set_data_for_send(packet);
    mc.start();
    return a.exec();
}

В методе start() создается объект для работы с сокетом, осуществляется соединение и при успешном коннекте в сокет отправляются нужные данные.
Но сигнал QTcpSocket::readyRead() не емитится и привязанный к нему слот не вызывается.
Посмотрел в Wireshark - данные уходят и приходит ответ.
Сам метод start() (выкинул то, что не имеет отношения к делу):

void MController::start()
{
    constexpr uint16_t port = 2222;
    device_connector = std::make_unique<TCP_Connector>(ip_, port);

    device_connector->connect_to_device();
    dynamic_cast<TCP_Connector*>(device_connector.get())->wait_ready_read();
}

В конец метода вставил

dynamic_cast<TCP_Connector*>(device_connector.get())->wait_ready_read();

в нем происходит:

tcp_->waitForReadyRead(4000);

После этого сигнал срабатывает один раз. по приему данных отправляю следующие данные, и ответа опять нет.
Думаю, что что-то связано с циклом обработки событий, но не пойму как сделать так, чтобы соединение создавалось после запуска этого цикла обработки событий.
Причем есть подобный код, но с графикой - там проблем нет. Но там коннект по кнопке осуществляется.
Как заставить работать нормально сигналы и слоты? Что-то затупил малость.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

3
Дмитрий
  • Қар. 9, 2021, 8:47 Т.Ж.

Да - пробовал еще QTimer создать, но он тоже не срабатывает.

    Docent
    • Қар. 9, 2021, 9:24 Т.Ж.

    "После этого сигнал срабатывает один раз" - один раз и должен был сработать до вызова обработчика событий;
    "readyRead() не емитится и привязанный к нему слот не вызывается" - этого и не видно в представленном коде;

      Дмитрий
      • Қар. 9, 2021, 9:34 Т.Ж.

      "этого и не видно в представленном коде;" - это внутренности MController. Во внутренностях этот коннект есть

        Пікірлер

        Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
        Кіріңіз немесе Тіркеліңіз
        AD

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Нәтиже:50ұпай,
        • Бағалау ұпайлары-4
        m
        • molni99
        • Қаз. 26, 2024, 1:37 Т.Ж.

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Нәтиже:80ұпай,
        • Бағалау ұпайлары4
        m
        • molni99
        • Қаз. 26, 2024, 1:29 Т.Ж.

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Нәтиже:20ұпай,
        • Бағалау ұпайлары-10
        Соңғы пікірлер
        ИМ
        Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
        Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
        Evgenii Legotckoi
        Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
        Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
        A
        ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
        Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
        ИМ
        Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
        Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
        d
        dblas5Шілде 5, 2024, 11:02 Т.Ж.
        QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
        Енді форумда талқылаңыз
        m
        moogoҚар. 22, 2024, 7:17 Т.Ж.
        Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
        Evgenii Legotckoi
        Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
        добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
        t
        tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
        google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
        NSProject
        NSProjectМаусым 4, 2022, 3:49 Т.Ж.
        Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

        Бізді әлеуметтік желілерде бақылаңыз