Auf dieser Seite

Prozessübergreifende Kommunikation

Qt unterstützt zahlreiche Möglichkeiten zur Kommunikation mit anderen Prozessen, die auf demselben System oder auf verschiedenen Systemen laufen. Grundsätzlich gibt es drei Arten von Mechanismen zur Interprozesskommunikation:

  1. Synchronisationsprimitive
  2. Austausch beliebiger Daten auf Byte-Ebene
  3. Übermittlung strukturierter Nachrichten

Synchronisationsprimitive

Qt stellt nur eine Klasse für die explizite Interprozess-Synchronisation bereit: „ QSystemSemaphore “. Ein „ QSystemSemaphore “ ähnelt einem „ QSemaphore “, auf das mehrere Prozesse im selben System zugreifen können. Es wird global durch einen „Schlüssel“ identifiziert, der in Qt durch die Klasse „ QNativeIpcKey “ repräsentiert wird. Darüber hinaus unterstützt Qt je nach Betriebssystem möglicherweise mehrere verschiedene Backends für die gemeinsame Nutzung von Speicher; weitere Informationen und Einschränkungen finden Sie in der Dokumentation zu „Native IPC Keys “.

Es ist möglich, reguläre Primitive zur Thread-Synchronisation wie Mutexe, Wartebedingungen und Lese-Schreib-Sperren zu verwenden, die sich im gemeinsam von Prozessen genutzten Speicher befinden. Qt stellt keine Klasse zur Unterstützung dieser Funktion bereit, aber Anwendungen können auf bestimmten Betriebssystemen Low-Level-Operationen nutzen.

Andere Qt-Klassen können verwendet werden, um eine übergeordnete Sperrung bereitzustellen, wie z. B. ` QLockFile`, oder durch das Erlangen einer eindeutigen, systemweiten Ressource. Zu diesen Techniken gehören ` TCP `- oder ` UDP `-Ports sowie bekannte Namen in ` D-Bus`.

Datenaustausch auf Byte-Ebene

Mithilfe von Daten auf Byte-Ebene können Anwendungen beliebige Kommunikationsprotokolle implementieren. Die gemeinsame Nutzung von Byte-Daten kann streamenorientiert (serialisiert) erfolgen oder einen wahlfreien Zugriff ermöglichen (ähnlich wie bei ` QFileDevice::isSequential()`).

Für die serielle Kommunikation stellt Qt eine Reihe verschiedener Klassen und sogar komplette Module bereit:

Für den Datenaustausch mit wahlfreiem Zugriff innerhalb desselben Systems bietet Qt „ QSharedMemory “ an. Ausführliche Informationen finden Sie in der Dokumentation zu „Shared Memory “.

Strukturierte Nachrichtenübermittlung

Qt bietet zudem eine Reihe von Techniken zum Austausch strukturierter Nachrichten mit anderen Prozessen. Anwendungen können auf den oben genannten Lösungen auf Byte-Ebene aufbauen, beispielsweise durch die Verwendung von „ QJsonDocument “ oder „ QXmlStreamReader “ / „ QXmlStreamWriter “ über HTTP, um jeweils JSONRPC oder XMLRPC auszuführen, oder durch „ QCborValue “ mit QtCoAP.

Zu den speziellen Qt-Modulen für strukturierte Nachrichten und den Fernprozeduraufruf gehören:

© 2026 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.