網絡和連接

Qt 提供用於高級網絡和低級網絡兩者通信的類、用於 Web 集成的類、及用於 IPC (進程間通信) 的類。

對於高級網絡流量, Qt Network 提供僅展示高級類和函數,覆蓋所用操作的抽象層。Qt Network 還可以處理像 TCP 和 UDP 的低級協議。類 QTcpSocket and QUdpSocket 使開發者能夠使用 TCP 或 UDP 協議發送和接收消息。名稱解析采用 QHostInfo . QHostInfo 被調用,先於創建網絡連接采用 QTcpSocket or QUdpSocket 。通過代理過濾和重新分配網絡流量,可以采用 QNetWorkProxy 類進行處理。

Qt Network 還提供 承載管理 API。它擁有可以啓動 (或停止) 網絡接口,並在訪問點之間漫遊的函數。無論如何,它不關心網絡配置本身。平颱需要關心這。

Qt WebEngine 提供基於 Chromium 的 Web 引擎,允許在應用程序中使用 Web 內容。 Qt WebEngine 能渲染 HTML5、XHTML 和 SVG 文檔,及執行 Javascript。

Qt 還提供功能為 進程間通信 (IPC)。類 QProcess 被用於啓動外部程序。 Qt D-Bus 提供對 D-Bus 的支持、進程間通信及遠程過程調用機製。它主要通過被稱為 Bus (總綫) 的中央服務器應用程序,進行通信。無論如何,讓應用程序直接相互通信也是可能的。 QSharedMemory 提供通過多綫程和多進程,訪問共享內存段。無論如何,單個進程獨占鎖定共享內存也是可能的。

網絡通信

Qt 支持廣泛網絡通信,重點是 HTTP、TCP 及 UDP。

在 HTTP 級彆, Qt Network 模塊提供網絡訪問 API,主要包括 QNetworkRequest , QNetworkAccessManager ,和 QNetworkReply 。簡而言之, QNetworkRequest 類似於 HTTP 請求,其被傳遞給 QNetworkAccessManager 以發送綫上請求;此類返迴 QNetworkReply ,其啓用 HTTP 迴復剖析。網絡訪問 API 在內部使用以下提及的套接字類 (對於 TCP 和 SSL)。

對於套接字級彆的通信, QTcpSocket , QUdpSocket and QSslSocket 應該被使用。這些類透過 waitFor* 方法提供同步 API,及異步 API;若可能的話 (即:若事件循環正在運行),應始終首選異步 API。Qt 還提供 QTcpServer 以啓用 TCP 通信的服務器端部分。請注意:Qt 沒有 HTTP 服務器類。

為憑藉 SSL 進行安全通信,Qt Network 提供廣泛的類,除瞭中心 QSslSocket ,如 QSslCertificate , QSslConfiguration and QSslError .

對於移動設備,Qt Network 提供 承載管理 API 去跟蹤連接狀態 (如:獲取在綫/離綫狀態,或是在使用 Wifi 還是 3G 的有關通知)。

Qt 還提供 HTTP 支持在 QML 通過明確使用 HTTP 憑藉 XmlHttpRequest ,或通過透明使用 HTTP URL 在如圖像源中。

相關話題:

WebSockets

直接 TCP 或 HTTP 通信的備選方案是使用 WebSocket 協議 ( RFC 6455 )。它是 TCP 協議之上的雙嚮通信協議,以利用現有 Web 基礎設施,無需創建額外基於客戶端-服務器的通信。 Qt WebSockets 模塊提供 QML 和 C++ API,除演示其用法的幾個範例外。

WWW (萬維網) 支持

Qt 能輕鬆將 Web 內容嵌入 Qt 應用程序,使用特性化的 Qt WebEngine 布局引擎。Qt WebEngine 模塊為 Qt 配備瞭廣泛標準的 Web 技術支持,使之將采用 CSS 樣式化和 JavaScript 腳本化的 HTML 內容嵌入 Qt 應用程序成為可能。 Qt WebEngine 促進集成傳統基於 QWidget 的桌麵應用程序,及嵌入 Qt Quick QML 應用程序。

更多信息見 集成 Web 內容 .

進程間通信

Qt提供瞭在 Qt 應用程序中實現 IPC (進程間通信) 的幾種辦法。

跨平颱 Qt Network 模塊提供使網絡編程可移植且容易的類。它提供高級類 (如 QNetworkAccessManager 、QFtp) 使用特定應用級協議進行通信, 和低級類 (如 QTcpSocket , QTcpServer , QSslSocket ) 為實現協議。

跨平颱共享內存類 QSharedMemory ,提供對操作係統共享內存實現的訪問。它允許通過多綫程和多進程,安全訪問共享內存段。此外, QSystemSemaphore 可以用於控製係統共享資源的訪問,及在進程之間通信。

The Qt D-Bus 模塊是可以使用 D-Bus 協議去實現 IPC (進程間通信) 的跨平颱庫。它擴展 Qt 的 信號/槽 機製到 IPC 級彆,允許由某一進程發射的信號能被連接到另一進程的槽。

跨平颱類 QProcess 可以被用於啓動外部程序作為子級進程,並與它們進行通信。它提供瞭用於監視和控製子級進程狀態的 API。 QProcess 給予對子級進程的輸入/輸齣通道的訪問,通過繼承 QIODevice .

The QLocalSocket 類提供本地套接字。在 Windows,這是命名管道;在 Unix,這是本地域套接字。 QLocalServer 類提供基於本地套接字的服務器。此類使接受傳入本地套接字連接成為可能。

相關話題:

串口通信

The Qt Serial Port 模塊提供為透過串口進行通信 (使用 RS-232 標準) 的 C++ API。它與物理端口,及模擬這些端口的驅動程序一起工作。串口仿真程序範例包括虛擬 COM 端口、com0com 仿真程序及 Bluetooth SPP。

此模塊旨在使串口編程更輕鬆和可移植。從 Qt 5.2 起,支持 Windows , macOS ,和 Linux .

相關話題:

藍牙通信

The Qt Bluetooth 模塊為短距離 (小於 100 米) 無綫協議提供 C++ 和 QML API,協議開發 藍牙特彆興趣組 。 它提供經典藍牙和低功耗藍牙特徵。

相關話題:

NFC 近場通信

The Qt NFC 模塊為極短距離 (小於 20 厘米) 無綫協議提供 C++ 和 QML API,協議開發 NFC 論壇 .

相關話題: