网络和连接

Qt provides classes for both high-level and low-level network communication, classes for web integration, and classes for inter-process communication (IPC).

对于高级网络流量, Qt Network 提供仅展示高级类和函数,覆盖所用操作的抽象层。Qt Network 也可以处理像 TCP 和 UDP 的低级协议。类 QTcpSocket and QUdpSocket enable the developer to send and receive messages using the TCP or UDP protocol. Name resolution is done with QHostInfo . QHostInfo 被调用,先于创建网络连接采用 QTcpSocket or QUdpSocket . Filtering and redistributing network traffic via proxies can be handled by the QNetworkProxy 类。

Qt 提供 connectivity options to connect systems or applications using modules like Qt Bluetooth , which provides connectivity between Bluetooth enabled devices. Qt Serial Bus provides classes and functions to access the various industrial serial buses and protocols, and Qt NFC provides connectivity between NFC enabled devices. Also, Qt Serial Port provides the basic functionality, including configuring, I/O operations, and getting and setting the control signals of the RS-232 pinouts.

Qt offers functionalities for 进程间通信 . The class QProcess 被用于启动外部程序。 Qt D-Bus provides support for D-Bus, an inter-process communication and remote procedure calling mechanism. It communicates via a central server application called a bus. However, it is also possible to let applications communicate directly with each other. QSharedMemory provides access to a shared memory segment by multiple threads and processes. However, a single process can exclusively lock that shared memory.

网络通信

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

在 HTTP 级别, Qt Network 模块提供网络访问 API,主要包括 QNetworkRequest , QNetworkAccessManager ,和 QNetworkReply QNetworkRequest 类似于 HTTP 请求,其被传递给 QNetworkAccessManager 以发送线上请求;此类返回 QNetworkReply , which enables parsing the HTTP reply. The network access API internally uses the socket classes mentioned below (for TCP and SSL).

QTcpSocket , QUdpSocket ,和 QSslSocket should be used for communication at the socket level. These classes offer a synchronous API through the waitFor* methods as well as an asynchronous API; if possible (that is if the event loop is running), the asynchronous API should always be preferred. Qt also offers QTcpServer to enable the server-side part of a TCP communication.

为凭借 SSL 进行安全通信,Qt Network 提供广泛的类,除了中心 QSslSocket 。例如, QSslCertificate , QSslConfiguration ,和 QSslError .

Qt also offers HTTP support in QML by either using HTTP explicitly via XmlHttpRequest, or by transparently using HTTP URLs in Image sources for example.

相关话题:

  • 用 Qt 进行网络编程
  • SSL (安全套接字层) 类
  • 资源加载和网络透明度 - 在 QML 中的网络和 URL 透明度
  • Qt Network Authorization - set of APIs that enable Qt applications to obtain limited access to online accounts and HTTP services without exposing users' passwords.
  • Qt Remote Objects - an inter-process communication (IPC) module that enables information exchange between processes or computers.
  • Qt MQTT - machine-to-machine (M2M) protocol that uses the publish-and-subscribe paradigm to provide a channel with minimal communication overhead.
  • Qt OPC UA - server that offers access to data that is organized in a mesh of nodes connected by references. The use of different reference types and nodes containing metadata enables a client to navigate and interpret the data without knowing their structure in advance.
  • Qt WebSockets - web-based protocol designed to enable a two-way interactive communication session between a client application and a remote host. It enables the two entities to send data back and forth if the initial handshake succeeds.
  • Qt WebChannel - enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application). It is supported out of the box by Qt WebEngine . In addition, it can work on all browsers that support WebSockets, enabling Qt WebChannel clients to run in any JavaScript environment (including QML). This requires implementing a custom transport based on Qt WebSockets.
  • Qt Protobuf - a generator that can be used to generate Qt-based classes from .proto 文件。
  • Qt GRPC - allows you to define data and messages in proto files and then use the code generators, which generate code allowing accessors for fields and gRPC services in the Qt framework.

连接

Qt supports a range of connectivity options, with a focus on Qt Serial Bus , Qt Serial Port , Qt Bluetooth and Qt NFC .

  • Qt Serial Bus - provides classes and functions to access the various industrial serial buses and protocols, such as CAN, ModBus, and others.
  • Qt Serial Port - provides the basic functionality, which includes configuring, I/O operations, getting and setting the control signals of the RS-232 pinouts.
  • Qt Bluetooth - provides classes and functions to use Bluetooth devices, which includes scanning for devices, gathering information, and exchanging data between them. Qt Bluetooth supports both Classic and Low Energy Bluetooth technologies.
  • Qt NFC - provides classes and functions to establish connectivity between NFC enabled devices. NFC is a short-range (less than 20 centimeters) wireless technology with a maximum transfer rate of 424 Kbps. NFC is ideal for transferring small packets of data when two devices are placed together.

相关话题: