Межпроцессное взаимодействие в Qt
Qt обеспечивает несколько путей для реализации межпроцессного взаимодействия (IPC) в приложениях на Qt.
- D-Bus Модуль QtDBus это библиотека для Unix, которую вы можете использовать для реализации IPC используя протокол D-Bus. Он расширяет механизм Qt Сигналы и Слоты до уровня IPC, позволяя сигналу, выработанному одним процессом подключиться к слоту в другом процессе. Страница Введение в D-Bus содержит детальную информацию о том как использовать модуль QtDBus.
- TCP/IP Кроссплатформенный модуль QtNetwork обеспечивает классы, которые делают сетевое программирование переносимым и простым. Он предлагает высокоуровневые классы (например, QHttp, QFtp), которые реализуют специфичные протоколы уровня приложений, и низкоуровневые классы (например, QTcpSocket, QTcpServer, QSslSocket) для реализации протоколов.
- Разделяемая память Кроссплатформенный класс разделяемой памяти (QSharedMemory) обеспечивает доступ к реализации разделяемой памяти операционной системы. Это позволяет получить безопасный доступ к сегментам разделяемой памяти множеством потоков и процессов.
- Qt COmmunications Protocol (QCOP) Класс QCopChannel реализует протокол для передачи сообщений между клиентскими процессами через именованные каналы. QCopChannel доступен только в Qt for Embedded Linux. Так же как модуль QtDBus, QCOP расширяет механизм Qt Сигналы и слоты до уровня IPC, позволяя сигналу, посланному одним процессом подключиться к слоту в другом процессе, но в отличие от QtDBus, QCOP не зависит от сторонней библиотеки.
|