Сообщение Re[4]: QSocket как blocking socket от 16.06.2020 21:35
Изменено 16.06.2020 21:42 qtprogger
Re[4]: QSocket как blocking socket
Здравствуйте, SaZ, Вы писали:
Q>>Пробовал QEventLoop, но он без QApplication не хочет работать.
SaZ>Ну так создайте его 1 раз где нибудь.
Вот в этом то и проблема. Я в топике не донес проблему.
Мне нужно сунуть синхронные сокеты в метод динамической библиотеки, которая используется не в Qt-GUI.
При создании в отдельном std::thread конструкции вида
Возникает сообщение
и ничего не работает.
Q>>Пробовал QEventLoop, но он без QApplication не хочет работать.
SaZ>Ну так создайте его 1 раз где нибудь.
Вот в этом то и проблема. Я в топике не донес проблему.
Мне нужно сунуть синхронные сокеты в метод динамической библиотеки, которая используется не в Qt-GUI.
При создании в отдельном std::thread конструкции вида
QCoreApplication app(/*...*/);
//... работают сокеты
app.exec();
Возникает сообщение
WARNING: QApplication was not created in the main() thread.
и ничего не работает.
Re[4]: QSocket как blocking socket
Здравствуйте, SaZ, Вы писали:
Q>>Пробовал QEventLoop, но он без QApplication не хочет работать.
SaZ>Ну так создайте его 1 раз где нибудь.
Вот в этом то и проблема. Я в топике не донес проблему.
Мне нужно сунуть синхронные сокеты в метод динамической библиотеки, которая используется не в Qt-GUI.
При создании в отдельном std::thread конструкции вида
Возникает сообщение
и ничего не работает.
P.S. более точно, вот так пытался завести клиента, в методе динамической библиотеки, не получилось. Если без QApplication обойтись нельзя, то Qt не поможет.
Q>>Пробовал QEventLoop, но он без QApplication не хочет работать.
SaZ>Ну так создайте его 1 раз где нибудь.
Вот в этом то и проблема. Я в топике не донес проблему.
Мне нужно сунуть синхронные сокеты в метод динамической библиотеки, которая используется не в Qt-GUI.
При создании в отдельном std::thread конструкции вида
QCoreApplication app(/*...*/);
//... работают сокеты
app.exec();
Возникает сообщение
WARNING: QApplication was not created in the main() thread.
и ничего не работает.
P.S. более точно, вот так пытался завести клиента, в методе динамической библиотеки, не получилось. Если без QApplication обойтись нельзя, то Qt не поможет.
Client * client = nullptr;
std::thread th
(
[&]
{
QCoreApplication app(argc, argv);
client = new Client;
return app.exec();
}
);
th.detach();
while(!client)
{
qDebug() << "nulptr";
QThread::usleep(1000);
}
client->setHostName("localhost");