простой демон-сервер с QT

Я пытаюсь использовать Qt для создания серверной / клиентской программы, которая работает с Inetd / xinetd в ОС Linux.

Я добавил файл конфигурации службы в /etc/xinetd.d/testServ
с этим текстом

service testServ
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/testServer
}

Затем я добавил эту строку в / etc / services

 testServ   5050/tcp    # the service uses the port nr 5050 and tcp protocol

Я создал специальную клиентскую программу, которая подключается к серверу с указанным портом, который работает без проблем.

Проблема в программе сервера. Я написал этот код в основной функции серверной программы

Int main(int argc, char *argv[]) {
qDebug()<<"starting the daemon version of server client app";
QApplication app(argc, argv);
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stdin,  NULL, _IONBF, 0);
QFile fstdin;
QFile fstdout;
fstdout.open(stdout, QFile::WriteOnly|QFile::Unbuffered);
fstdin.open(stdin, QFile::ReadOnly);
CleintProcess clientproc (NULL, &slog, argc, argv, &fstdin, &fstdout);
app.exec();
return 0;
}

Проблема в программе сервера находится на второй строке основной функции, программа не продолжается после этой строки. Если я что-то печатаю после этой строки, она не появляется на экране, но если я что-то печатаю до этой строки, появляется сообщение для печати.
Я не знаю, почему Inetd / Xinetd не работает с QApplication app(argc, argv);

когда я удаляю эту строку и другую строку (app.exe), программа прекращает работу напрямую.

Мне нужно QApplication, потому что я использую его много раз в объекте clientproc (….).

Можете ли вы помочь мне решить эту проблему и заставить qt работать с inetd / xinetd в linux.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]