ネットワークとコネクティビティ

Qt では、高レベルおよび低レベルのネットワーク通信、Web 統合、プロセス間通信(IPC)のためのクラスを提供しています。

高水準のネットワーク・トラフィックには、以下のようなクラスが用意されています、 Qt NetworkQt Network は、TCP や UDP のような低レベルのプロトコルも扱うことができます。QTcpSocketQUdpSocket のようなクラスによって、開発者は TCP や UDP プロトコルを使ってメッセージを送受信できる。名前解決はQHostInfo で行われる。QHostInfo は、QTcpSocket またはQUdpSocket でネットワーク接続を作成する前に呼び出される。プロキシを介したネットワーク・トラフィックのフィルタリングと再分配は、QNetworkProxy クラスで処理できます。

Qt は、以下のようなモジュールを使用して、システムやアプリケーションを接続するための接続オプションを提供します。 Qt Bluetoothこれは Bluetooth 対応デバイス間の接続を提供します。 Qt Serial Busは、様々な産業用シリアルバスとプロトコルにアクセスするためのクラスと関数を提供します。 Qt NFCは、NFC 対応デバイス間の接続性を提供します。また Qt Serial Portは、設定、I/O 操作、RS-232 ピンアウトの制御信号の取得と設定などの基本機能を提供します。

Qt はプロセス間通信のための機能を提供します。QProcess クラスは外部プログラムの起動に使用されます。 Qt D-Busは、プロセス間通信とリモートプロシージャ呼び出しメカニズムであるD-Busのサポートを提供します。バスと呼ばれる中央サーバーアプリケーションを介して通信します。QSharedMemory は、複数のスレッドやプロセスによる共有メモリー・セグメントへのアクセスを提供する。ただし、1つのプロセスがその共有メモリーを排他的にロックすることはできる。

ネットワーク通信

Qt は HTTP、TCP、UDP を中心に、幅広いネットワーク通信をサポートしています。

HTTPレベルでは Qt Networkモジュールは、主にQNetworkRequestQNetworkAccessManagerQNetworkReply で構成されるネットワークアクセス API を提供します。QNetworkRequest はHTTPリクエストに似ており、リクエストを有線で送信するためにQNetworkAccessManager に渡される。このクラスはQNetworkReply を返し、HTTPリプライの解析を可能にする。ネットワークアクセスAPIは、内部的に以下のソケットクラス(TCPとSSL用)を使用する。

QTcpSocketソケットレベルでの通信にはQUdpSocketQSslSocket を使用する。これらのクラスは、waitFor*メソッドによる同期APIと、非同期APIを提供します。可能であれば(つまり、イベントループが実行されていれば)、常に非同期APIを優先すべきです。Qt は、TCP 通信のサーバー側を有効にするためのQTcpServer も提供しています。

SSLによるセキュアな通信のために、Qt Network は、中心となるQSslSocket と並んで、幅広いクラスを提供しています。例えば、QSslCertificateQSslConfigurationQSslError などです。

Qtでは、XmlHttpRequestによるHTTPの明示的な利用や、ImageソースにおけるHTTP URLの透過的な利用など、QMLにおけるHTTPのサポートも行っています。

関連するトピック

  • Qt によるネットワークプログラミング
  • SSL (Secure Sockets Layer) クラス
  • リソースロードとネットワークの透過性- QML におけるネットワークと URL の透過性
  • Qt Network Authorization- Qt アプリケーションが、オンラインアカウントや HTTP サービスへの限定的なアクセスを、ユーザのパスワードを公開することなく行えるようにするための API 群です。
  • Qt Remote Objects- プロセス間通信(IPC)モジュール - プロセス間やコンピュータ間の情報交換を可能にします。
  • Qt MQTT- publish-and-subscribe パラダイムを使用して、通信オーバーヘッドを最小限に抑えたチャネルを提供する M2M (machine-to-machine) プロトコル。
  • Qt OPC UA- 参照によって接続されたノードのメッシュで構成されるデータへのアクセスを提供するサーバー。さまざまな参照タイプとメタデータを含むノードを使用することで、クライアントは事前に構造を知らなくてもデータをナビゲートし、解釈することができる。
  • Qt WebSockets- ウェブベースのプロトコルで、クライアント・アプリケーションとリモート・ホスト間の双方向対話型通信セッションを可能にするように設計されている。最初のハンドシェイクに成功すると、2つのエンティティがデータを送受信できるようになる。
  • Qt WebChannel- サーバー(QML/C++アプリケーション)とクライアント(HTML/JavaScriptまたはQMLアプリケーション)間のピアツーピア通信を可能にします。QtWebEngine ではすぐにサポートされます。さらに、WebSocket をサポートするすべてのブラウザで動作するため、(QML を含む)あらゆる JavaScript 環境でQt WebChannel クライアントを実行できます。これには、Qt WebSockets をベースにしたカスタムトランスポートを実装する必要があります。
  • Qt Protobuf-.proto ファイルから Qt ベースのクラスを生成するために使用できるジェネレーターです。
  • Qt GRPC- このジェネレータは、Qt フレームワークのフィールドや gRPC サービス用のアクセサを生成するコードを生成します。

接続性

Qt は様々な接続オプションをサポートしています。 Qt Serial Bus, Qt Serial Port, Qt Bluetoothおよび Qt NFC.

  • Qt Serial Bus- CAN、ModBusなどの様々な産業用シリアルバスやプロトコルにアクセスするためのクラスと関数を提供します。
  • Qt Serial Port- コンフィギュレーション、I/O操作、RS-232ピンアウトの制御信号の取得と設定などの基本機能を提供します。
  • Qt Bluetooth- Bluetoothデバイスを使用するためのクラスと関数を提供します。これには、デバイスのスキャン、情報の収集、デバイス間のデータ交換が含まれます。Qt Bluetooth は、クラシック Bluetooth テクノロジーと低エネルギー Bluetooth テクノロジーの両方をサポートしています。
  • Qt NFC- は、NFC 対応デバイス間の接続を確立するためのクラスと関数を提供します。は最大転送速度424 Kbps の短距離(20 センチメートル未満)無線技術です。NFCは、2つのデバイスが一緒に置かれたときに小さなデータパケットを転送するのに理想的です。

関連トピック

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