网络和连接

Qt 提供了用于高级和低级网络通信、Web 集成以及进程间通信(IPC)的类。

对于高级网络流量,Qt Network 提供了对操作的抽象层,只显示高级类和函数。Qt Network 还可以处理较低级别的协议,如 TCP 和 UDP。例如,QTcpSocketQUdpSocket 允许开发者使用 TCP 或 UDP 协议发送和接收消息。使用 QHostInfo 进行名称解析。在创建与 QTcpSocketQUdpSocket 的网络连接之前,通常会调用 QHostInfo。通过代理过滤和重新分配网络流量可以通过 QNetworkProxy 类来处理。

Qt 提供通过模块如 Qt Bluetooth 连接系统或应用的选项,该模块提供蓝牙设备之间的连接。 Qt Serial Bus 提供访问各种工业串行总线及其协议的类和函数,而 Qt NFC 提供了 NFC 设备间的连接。此外,Qt Serial Port 提供了配置、I/O 操作以及获取和设置 RS-232 插针的控制信号等基本功能。

Qt 提供了用于 进程间通信 的功能。使用 QProcess 类启动外部程序。Qt D-Bus 提供了对 D-Bus 的支持,这是一个进程间通信和远程过程调用机制。它通过称为总线的中心服务器应用程序来通信。然而,也可以让应用直接相互通信。 QSharedMemory 通过多个线程和进程提供对共享内存段的访问。但是,单个进程可以专有锁定该共享内存。

网络通信

Qt 支持广泛的网络通信,重点是 HTTP、TCP 和 UDP。

在 HTTP 层面,Qt Network 模块提供了网络访问 API,它主要由 QNetworkRequestQNetworkAccessManagerQNetworkReply 组成。类似 HTTP 请求的 QNetworkRequest 被传递给 QNetworkAccessManager 以在线发送请求;此类返回一个 QNetworkReply,它允许解析 HTTP 响应。网络访问 API 在内部使用下面提到的套接字类(对于 TCP 和 SSL)。

应使用QTcpSocketQUdpSocketQSslSocket在套接字级别进行通信。这些类通过waitFor*方法提供同步API,同时也提供异步API;如果可能(即事件循环正在运行),应始终首选异步API。Qt还提供了QTcpServer以启用TCP通信的服务器端。

为了安全地通过SSL进行通信,Qt Network在中心QSslSocket之外还提供了一系列类。例如,QSslCertificateQSslConfigurationQSslError

Qt通过XMLHttpRequest显式使用HTTP或通过例如图像源中的透明HTTP URL使用HTTP,在QML中提供HTTP支持。

相关主题

  • 使用Qt进行网络编程
  • 安全套接字层(SSL)类
  • 资源加载和网络透明度 - QML中的网络和URL透明度
  • Qt网络授权 - 一组API,使Qt应用程序能够在不暴露用户密码的情况下获得对在线帐户和HTTP服务的有限访问。
  • Qt远程对象 - 一个进程间通信(IPC)模块,可启用进程或计算机之间的信息交换。
  • Qt MQTT - 使用发布和订阅范例的机器对机器(M2M)协议,提供了具有最小通信开销的通道。
  • Qt OPC UA - 服务器提供对组织成由引用连接的节点网格的数据的访问。使用不同的引用类型和包含元数据的节点可以使用户在不事先知道它们的结构的情况下导航和解释数据。
  • Qt WebSockets - 一种基于Web的协议,旨在通过在上手摇号成功的情况下允许两个实体相互发送数据,在客户端应用程序和远程主机之间启用双向交互式通信会话。
  • Qt WebChannel - 允许服务器(QML/C++应用程序)和客户端(HTML/JavaScript或QML应用程序)之间进行对等通信。它由Qt WebEngine原生支持。此外,它可以在支持WebSockets的所有浏览器上工作,使Qt WebChannel客户端能够在任何JavaScript环境中(包括QML)运行。这需要实现基于Qt WebSockets的自定义传输。
  • Qt Protobuf - 一种生成器,可用于从.proto文件中生成基于Qt的类。
  • Qt GRPC - 允许您在proto文件中定义数据和消息,然后使用代码生成器,这些生成器生成代码,允许在Qt框架中访问字段和gRPC服务。

连接性

Qt支持一系列连接选项,重点关注Qt串行总线Qt串行端口Qt蓝牙Qt近场通信

  • Qt串行总线 - 提供访问各种工业串行总线协议(如CAN、ModBus等)的类和函数。
  • Qt串行端口 - 提供基本功能,包括配置、I/O操作、获取和设置RS-232引脚的控制信号。
  • Qt 蓝牙 - 提供用于使用蓝牙设备的类和函数,包括扫描设备、收集信息和在设备之间交换数据。Qt 蓝牙支持经典蓝牙和低能耗蓝牙技术。
  • Qt NFC - 提供用于在具有NFC功能的设备之间建立连接的类和函数。NFC是一种短距离(小于20厘米)的无线技术,最大传输速率为424 Kbps。当两个设备放在一起时,NFC非常适合传输小数据包。

相关主题

© 2024 Qt 公司有限公司。本文件包含的文档贡献的版权归其各自的拥有者。本文件提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款资格授权的。Qt 和相应的标志是芬兰及其它全球地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。