网络和连接
Qt 提供了高级和低级网络通信类、网络集成类和进程间通信(IPC)类。
对于高级网络通信,Qt Qt NetworkQt Network 也能处理 TCP 和 UDP 等低级协议。通过QTcpSocket 和QUdpSocket 等类,开发人员可以使用 TCP 或 UDP 协议发送和接收信息。QHostInfo在使用QTcpSocket 或QUdpSocket 创建网络连接之前,先调用QHostInfo 。通过代理过滤和重新分配网络流量可由QNetworkProxy 类处理。
Qt 提供了连接系统或应用程序的连接选项,使用的模块包括 Qt Bluetooth等模块来连接系统或应用程序。 Qt Serial Bus提供了访问各种工业串行总线和协议的类和函数,以及 Qt NFC提供 NFC 设备之间的连接。此外 Qt Serial Port提供了基本功能,包括配置、I/O 操作以及获取和设置 RS-232 引脚的控制信号。
Qt 提供进程间通信功能。类QProcess 用于启动外部程序。 Qt D-BusQt 的 D-Bus 提供了对进程间通信和远程过程调用机制的支持。它通过一个称为总线的中央服务器应用程序进行通信。QSharedMemory 允许多个线程和进程访问共享内存段。不过,单个进程可以独占锁定共享内存。
网络通信
Qt Network 支持多种网络通信,重点是 HTTP、TCP 和 UDP。
在 HTTP 层 Qt Network模块提供了网络访问 API,主要包括QNetworkRequest 、QNetworkAccessManager 和QNetworkReply 。QNetworkRequest 类似于 HTTP 请求,它被传递给QNetworkAccessManager ,以便在网络上发送请求;该类返回QNetworkReply ,以便解析 HTTP 回复。网络访问 API 内部使用下面提到的套接字类(用于 TCP 和 SSL)。
QTcpSocket QUdpSocket 和 应用于套接字级别的通信。这些类通过 waitFor* 方法提供了同步 API,也提供了异步 API;如果可能(即如果事件循环正在运行),应首选异步 API。Qt XML 还提供 来启用 TCP 通信的服务器端部分。QSslSocket QTcpServer
对于通过 SSL 进行的安全通信,Qt Network 除了中央QSslSocket 之外,还提供了大量的类。例如,QSslCertificate 、QSslConfiguration 和QSslError 。
Qt Qml 还通过 XmlHttpRequest 明确使用 HTTP 或在图像源中透明使用 HTTP URL 等方式提供 HTTP 支持。
相关主题:
- 用 Qt 进行网络编程
- 安全套接字层(SSL)类
- 资源加载和网络透明--QML 中的网络和 URL透明化
- Qt Network 授权(Authorization)--一套 API,使 Qt 应用程序能在不暴露用户密码的情况下,有限地访问在线账户和 HTTP 服务。
- Qt Remote Objects- 进程间通信(IPC)--一个进程间通信(IPC)模块,可实现进程或计算机之间的信息交换。
- Qt MQTT- 机器对机器(M2M)协议,它使用发布和订阅模式,以最小的通信开销提供通道。
- Qt OPC UA- 服务器(server):提供对数据的访问,这些数据是通过引用连接的网状节点组织起来的。通过使用不同的引用类型和包含元数据的节点,客户端可以在不事先了解数据结构的情况下浏览和解释数据。
- Qt WebSockets- 基于网络的协议,旨在实现客户端应用程序与远程主机之间的双向交互式通信会话。如果初始握手成功,两个实体就能来回发送数据。
- Qt WebChannel- QML/C++ 应用程序)和客户端(HTML/JavaScript 或 QML 应用程序)之间进行点对点通信。Qt XMLWebEngine 开箱即支持该功能。此外,它还能在所有支持 WebSockets 的浏览器上运行,使Qt WebChannel 客户端能在任何 JavaScript 环境(包括 QML)中运行。这需要基于Qt WebSockets 实现自定义传输。
- Qt Protobuf- 一个生成器,可用于从
.proto
文件生成基于 Qt 的类。 - Qt GRPC- Qt GRPC 允许您在 proto 文件中定义数据和消息,然后使用代码生成器,它生成的代码允许访问 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-Qt Bluetooth 支持传统蓝牙和低能耗蓝牙技术,提供使用蓝牙设备的类和函数,包括扫描设备、收集信息和在设备间交换数据。
- Qt NFC- NFC 提供了在启用 NFC 的设备之间建立连接的类和函数。NFC 是一种短距离(小于 20 厘米)无线技术,最大传输速率为 424 Kbps。当两个设备放在一起时,NFC 是传输小数据包的理想选择。
相关主题:
© 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.