ネットワークと接続性
Qt Network は、ネットワーク通信、Web 統合、およびデバイス接続のためのモジュールを提供しています。ネットワーク対応アプリケーションを、複数のプラットフォームやデバイスに展開することができます。
ネットワークを介した通信Qt Network
`The Qt Network モジュールは、Qt Networkにおける主要なネットワークAPIを提供します。そのC++ APIにより、アプリケーションはオペレーティングシステムのネイティブなネットワーク機能を安全かつ効率的に利用できます。 Qt を使用すると、TCP または UDP ソケットを介したデータの送受信、REST API や Web サービスに対する HTTP/HTTPS リクエストの実行、ファイルのダウンロードおよびアップロード、プロキシや認証の処理、SSL/TLS を使用したセキュアな接続の確立など、さまざまなシナリオに対応できます。
詳細については、「Qt Network によるネットワークプログラミング」の概要を参照してください。
QML からのリソースへのアクセス
QML タイプは、URL からリソースを読み込むことができます。リソースには、画像、テキストファイル、ソースファイル、その他の種類のファイルが含まれます。これにより、さまざまなデータソースへの接続が簡素化されます。詳細については、「リソースの読み込みとネットワークの透過性」の概要を参照してください。
また、QML JavaScript でXMLHttpRequestを使用して、フォームデータの送信やサーバーからの非同期データ読み込みなど、HTTP クライアント機能を実行することもできます。
WebSocket を使用した通信
Qt WebSockets は、QtアプリケーションにWebSocket機能を提供します。 WebSocketプロトコルは、リアルタイムで、持続的かつ完全に非同期な接続を必要とするクライアント・サーバー間の通信のためのものです。HTTPと比較して、WebSocketは低遅延かつ高スループットを実現します。WebSocketは初期のハンドシェイク手順にHTTP 1.1のGETリクエストを使用しますが、パケット形式は異なります。
WebSocketの恩恵を受けるアプリケーションには、金融市場データフィードやメッセージングサービスなどがあります。例については、「Qt WebSockets の例」ページを参照してください。
Webサービスの実行
Qt HTTP Server モジュールは、ネットワーク経由でWebサービスを開発するためのクラスを提供します。Qt HTTP Server はHTTP/1.1およびHTTP/2プロトコルをサポートし、RESTful APIを作成するためのルーティング機能を提供します。
Qt OpenAPIモジュールは、OpenAPI 仕様ファイルから Qt HTTP クライアントコードを生成します。このモジュールは、QRestAccessManager などのQt Network RESTful API を使用して、REST サービス用の型安全な C++ クライアントを作成します。
注:Qt OpenAPIは現在、テクノロジープレビュー段階にあります。
WebコンテンツをQtアプリケーションに統合する
Qt WebEngine は、他のQtモジュールとの統合を備えたChromiumベースのWebコンテンツレンダリング機能を提供します。Qt WebEngine を使用すると、ChromiumのレンダリングエンジンをQtアプリケーションに組み込み、Webコンテンツを処理できます。Qt WebEngine は、HTML5、WebGL、およびその他のChromium機能をサポートしています。Qt WebEngine の機能一覧については、「Qt WebEngine の機能」ページを参照してください。
Qt WebChannel JavaScript コンテンツを Qt アプリケーションに統合できます。QWebChannel を使用して、アプリケーション内の C++ オブジェクトを公開し、JavaScript ライブラリを通じて Web クライアントからそれらのオブジェクトにアクセスします。これにより、JavaScript 内のQWebChannel オブジェクトから Qt オブジェクト、プロパティ、シグナルにアクセスできるようになります。Qt WebChannel は WebSockets を使用し、Qt WebEngine 内で動作します。
Qt WebView は、アプリケーション内で Web コンテンツを表示する軽量な Web ビューです。これは、プラットフォームのネイティブ Web ビューに基づいています。
Bluetooth および NFC によるワイヤレス接続
Bluetoothは、短距離でデータを交換するための無線技術規格です。Bluetoothは民生用デバイスで広く普及しており、新しいバージョンには、セキュリティ対策が強化されたBluetooth Low Energy(BLE)デバイスが含まれています。 Qt Bluetooth モジュールを使用すると、Bluetoothデバイスの検出、デバイスへの接続、およびデータのやり取りが可能です。Qt Bluetooth は、ClassicデバイスとBLEデバイスの両方をサポートしています。詳細については、「Qt Bluetooth の概要」を参照してください。
近距離無線通信(NFC)は、データ転送速度が低く、消費電力が少ない短距離無線技術です。NFCは、2つのデバイスが互いに近接している際に、少量のデータパケットを転送するのに最適です。 Qt NFC モジュールとそのAPIを使用して、NFC対応デバイス間の接続を確立します。
シリアルバスおよびポートを介した通信
Qt には、シリアルバスおよびポートを介した通信を行うための 2 つのモジュールが用意されています。 Qt Serial Bus は、CANバスやModBusなど、さまざまな産業用シリアルバスおよびプロトコルへのインターフェースを提供します。 Qt Serial Port は、設定、I/O 操作、制御信号の読み取りおよび書き込み操作など、RS-232 ピン配列へのインターフェースを提供します。
高レベルプロトコルおよびサービスによる通信
Qt には、高レベルのネットワーク通信およびプロセス間通信 (IPC) を行うためのモジュールがいくつか用意されています。また、M2M (Machine-to-Machine) 業界プロトコルや、小規模な IoT システムもサポートされています。たとえば、QtD-Bus、QtGRPC、QtMQTT、Qt CoAP 用のモジュールがあります。
詳細については、「Qtにおけるプロセス間通信」のページを参照してください。
ネットワークアプリケーションのセキュリティ確保
ネットワーク接続されたデバイスについては、セキュリティ上の考慮事項に留意してください。ユーザー、そのデータ、およびネットワーク接続されたシステムを保護するために、堅牢なセキュリティ対策とアプリケーション設計を実施してください。
実装可能なセキュリティ対策には、次のようなものがあります:
- データの送受信時には暗号化を使用してください。「Secure Sockets Layer (SSL) クラス」を参照してください。
- 強力な認証および認可メカニズムを使用してください。 Qt Network Authorizationを参照してください。
- 信頼できないデータを検証し、適切に処理してください。「信頼できないデータの取り扱い」を参照してください。
- 不正利用を防ぐために、レート制限を設定し、トラフィックを監視してください。
- 監視攻撃やリプレイ攻撃から保護するために、ソルトやノンスの手法を取り入れてください。
- セキュリティの脆弱性を修正するために、環境を更新してください。
Qt のセキュリティポリシーおよび対策の詳細については、「Qt のセキュリティ」を参照してください。
© 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.