Netzwerke und Konnektivität

Qt bietet Klassen für High-Level- und Low-Level-Netzwerkkommunikation, Klassen für Web-Integration und Klassen für Inter-Prozess-Kommunikation (IPC).

Für High-Level-Netzwerkverkehr, Qt Network eine Abstraktionsschicht über den verwendeten Operationen, die nur High-Level-Klassen und -Funktionen zeigt. Qt Network kann auch Protokolle auf niedrigerer Ebene wie TCP und UDP verarbeiten. Klassen wie QTcpSocket und QUdpSocket ermöglichen es dem Entwickler, Nachrichten über das TCP- oder UDP-Protokoll zu senden und zu empfangen. Die Namensauflösung erfolgt mit QHostInfo. QHostInfo wird vor dem Aufbau einer Netzwerkverbindung mit QTcpSocket oder QUdpSocket aufgerufen. Das Filtern und Umverteilen des Netzwerkverkehrs über Proxies kann von der Klasse QNetworkProxy übernommen werden.

Qt bietet Konnektivitätsoptionen für die Verbindung von Systemen oder Anwendungen mit Modulen wie Qt Bluetooth, das die Verbindung zwischen Bluetooth-fähigen Geräten ermöglicht. Qt Serial Bus bietet Klassen und Funktionen für den Zugriff auf die verschiedenen industriellen seriellen Busse und Protokolle, und Qt NFC bietet Konnektivität zwischen NFC-fähigen Geräten. Außerdem, Qt Serial Port bietet die grundlegende Funktionalität, einschließlich Konfiguration, E/A-Operationen und Abrufen und Einstellen der Steuersignale der RS-232-Pinouts.

Qt bietet Funktionalitäten für die Inter-Prozess-Kommunikation. Die Klasse QProcess wird verwendet, um externe Programme zu starten. Qt D-Bus bietet Unterstützung für D-Bus, einen Mechanismus für Interprozesskommunikation und Remote Procedure Calling. Die Kommunikation erfolgt über eine zentrale Serveranwendung, die als Bus bezeichnet wird. Es ist jedoch auch möglich, Anwendungen direkt miteinander kommunizieren zu lassen. QSharedMemory ermöglicht den Zugriff auf ein gemeinsames Speichersegment durch mehrere Threads und Prozesse. Allerdings kann ein einzelner Prozess diesen gemeinsamen Speicher exklusiv sperren.

Netzwerk-Kommunikation

Qt unterstützt eine breite Palette von Netzwerkkommunikation, wobei der Schwerpunkt auf HTTP, TCP und UDP liegt.

Auf der HTTP-Ebene bietet das Qt Network Modul die Netzwerkzugriffs-API an, die hauptsächlich aus QNetworkRequest, QNetworkAccessManager und QNetworkReply besteht. Die QNetworkRequest ähnelt einer HTTP-Anfrage, die an die QNetworkAccessManager übergeben wird, um die Anfrage über die Leitung zu senden; diese Klasse gibt eine QNetworkReply zurück, die das Parsen der HTTP-Antwort ermöglicht. Die Netzwerkzugriffs-API verwendet intern die unten genannten Socket-Klassen (für TCP und SSL).

QTcpSocketDie Klassen QUdpSocket und QSslSocket sollten für die Kommunikation auf Socket-Ebene verwendet werden. Diese Klassen bieten sowohl eine synchrone API durch die waitFor*-Methoden als auch eine asynchrone API; wenn möglich (d.h. wenn die Ereignisschleife läuft), sollte die asynchrone API immer bevorzugt werden. Qt bietet auch QTcpServer, um den serverseitigen Teil einer TCP-Kommunikation zu ermöglichen.

Für die sichere Kommunikation über SSL bietet Qt Network neben der zentralen QSslSocket eine breite Palette von Klassen. Zum Beispiel QSslCertificate, QSslConfiguration, und QSslError.

Qt bietet auch HTTP-Unterstützung in QML, entweder durch explizite Verwendung von HTTP über XmlHttpRequest oder durch transparente Verwendung von HTTP-URLs z.B. in Bildquellen.

Verwandte Themen:

  • Netzwerkprogrammierung mit Qt
  • Secure Sockets Layer (SSL)-Klassen
  • Laden von Ressourcen und Netzwerktransparenz - Netzwerk- und URL-Transparenz in QML
  • Qt Network Autorisierung - eine Reihe von APIs, die es Qt-Anwendungen ermöglichen, begrenzten Zugriff auf Online-Konten und HTTP-Dienste zu erhalten, ohne die Passwörter der Benutzer preiszugeben.
  • Qt Remote Objects - ein IPC-Modul (Inter-Process Communication), das den Informationsaustausch zwischen Prozessen oder Computern ermöglicht.
  • Qt MQTT - Machine-to-Machine (M2M)-Protokoll, das das Publish-and-Subscribe-Paradigma verwendet, um einen Kanal mit minimalem Kommunikations-Overhead bereitzustellen.
  • Qt OPC UA - Server, der Zugang zu Daten bietet, die in einem Netz von Knoten organisiert sind, die durch Referenzen verbunden sind. Durch die Verwendung verschiedener Referenztypen und Knoten, die Metadaten enthalten, kann ein Client in den Daten navigieren und sie interpretieren, ohne ihre Struktur im Voraus zu kennen.
  • Qt WebSockets - Web-basiertes Protokoll, das eine wechselseitige interaktive Kommunikationssitzung zwischen einer Client-Anwendung und einem Remote-Host ermöglicht. Es ermöglicht den beiden Einheiten, Daten hin und her zu senden, wenn der erste Handshake erfolgreich ist.
  • Qt WebChannel - ermöglicht eine Peer-to-Peer-Kommunikation zwischen einem Server (QML/C++-Anwendung) und einem Client (HTML/JavaScript- oder QML-Anwendung). Sie wird standardmäßig von Qt WebEngine unterstützt. Darüber hinaus kann es auf allen Browsern funktionieren, die WebSockets unterstützen, so dass Qt WebChannel -Clients in jeder JavaScript-Umgebung (einschließlich QML) ausgeführt werden können. Dies erfordert die Implementierung eines benutzerdefinierten Transports, der auf Qt WebSockets basiert.
  • Qt Protobuf - einen Generator, der verwendet werden kann, um Qt-basierte Klassen aus .proto Dateien zu erzeugen.
  • Qt GRPC - ermöglicht es Ihnen, Daten und Nachrichten in Proto-Dateien zu definieren und dann die Code-Generatoren zu verwenden, die Code erzeugen, der Zugriffsmöglichkeiten für Felder und gRPC-Dienste im Qt-Framework bietet.

Konnektivität

Qt unterstützt eine Reihe von Konnektivitätsoptionen, mit dem Schwerpunkt auf Qt Serial Bus, Qt Serial Port, Qt Bluetooth und Qt NFC.

  • Qt Serial Bus - bietet Klassen und Funktionen für den Zugriff auf die verschiedenen industriellen seriellen Busse und Protokolle, wie CAN, ModBus und andere.
  • Qt Serial Port - bietet die grundlegende Funktionalität, die die Konfiguration, E/A-Operationen, das Abrufen und Einstellen der Steuersignale der RS-232-Pinouts umfasst.
  • Qt Bluetooth - bietet Klassen und Funktionen für die Verwendung von Bluetooth-Geräten, einschließlich des Scannens nach Geräten, des Sammelns von Informationen und des Datenaustauschs zwischen ihnen. Qt Bluetooth unterstützt sowohl die klassische als auch die Low Energy Bluetooth-Technologie.
  • Qt NFC - bietet Klassen und Funktionen, um eine Verbindung zwischen NFC-fähigen Geräten herzustellen. NFC ist eine drahtlose Technologie mit kurzer Reichweite (weniger als 20 Zentimeter) und einer maximalen Übertragungsrate von 424 Kbps. NFC ist ideal für die Übertragung kleiner Datenpakete, wenn zwei Geräte zusammengebracht werden.

Verwandte Themen:

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