Interprozess-Kommunikation in Qt
Qt bietet mehrere Möglichkeiten, Inter-Prozess-Kommunikation (IPC) in Qt-Anwendungen zu implementieren.
TCP/IP
Das plattformübergreifende Qt Network Modul bietet Klassen, die die Netzwerkprogrammierung portabel und einfach machen. Es bietet High-Level-Klassen (z.B. QNetworkAccessManager), die mit spezifischen Protokollen auf Anwendungsebene kommunizieren, und Lower-Level-Klassen (z.B. QTcpSocket, QTcpServer, QSslSocket) zur Implementierung von Protokollen.
Lokaler Server/Socket
Das plattformübergreifende Qt Network Modul bietet Klassen, die die lokale Netzwerkprogrammierung portabel und einfach machen. Es bietet die Klassen QLocalServer und QLocalSocket, die eine netzwerkähnliche Kommunikation in einer lokalen Umgebung ermöglichen. Ihre TCP-Gegenstücke können als Drop-in-Ersatz verwendet werden, damit die Kommunikation über Netzwerke hinweg funktioniert.
Gemeinsamer Speicher
Die plattformübergreifende Shared-Memory-Klasse QSharedMemory ermöglicht den Zugriff auf die Shared-Memory-Implementierung des Betriebssystems. Sie ermöglicht den sicheren Zugriff auf gemeinsame Speichersegmente durch mehrere Threads und Prozesse. Darüber hinaus kann QSystemSemaphore verwendet werden, um den Zugriff auf vom System gemeinsam genutzte Ressourcen zu kontrollieren und um zwischen Prozessen zu kommunizieren.
D-Bus-Protokoll
Das Qt D-Bus Modul ist eine reine Unix-Bibliothek, die Sie verwenden können, um IPC unter Verwendung des D-Bus-Protokolls zu implementieren. Es erweitert den Qt-Mechanismus für Signale und Slots auf die IPC-Ebene, so dass ein Signal, das von einem Prozess ausgegeben wird, mit einem Slot in einem anderen Prozess verbunden werden kann. Die Qt D-Bus Dokumentation enthält detaillierte Informationen über die Verwendung des Qt D-Bus Moduls.
QProcess-Klasse
Die plattformübergreifende Klasse QProcess kann verwendet werden, um externe Programme als Kindprozesse zu starten und mit ihnen zu kommunizieren. Sie bietet eine API zur Überwachung und Steuerung des Zustands des Kindprozesses. QProcess ermöglicht den Zugriff auf die Eingabe-/Ausgabekanäle des Kindprozesses durch Vererbung von QIODevice.
Sitzungsverwaltung
Unter Linux/X11, Windows und macOS bietet Qt Unterstützung für die Sitzungsverwaltung. Sessions ermöglichen die Weitergabe von Ereignissen an Prozesse, z. B. um zu benachrichtigen, wenn ein Shutdown stattfindet. Der Prozess und die Anwendungen können dann alle notwendigen Operationen durchführen, wie z.B. das Speichern von geöffneten Dokumenten.
Siehe auch das Thema IPC in Qt Core.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.