概述
Qt网络模块为我们提供了编写TCP / IP客户端和服务器的类。 它提供了较低级别的类,例如代表低级网络概念的QTcpSocket,QTcpServer和QUdpSocket,以及诸如QNetworkRequest,QNetworkReply和QNetworkAccessManager之类的高级类来执行使用通用协议的网络操作。 它还提供了诸如QNetworkConfiguration,QNetworkConfigurationManager和QNetworkSession等类,实现承载管理。
Qt网络编程类
要使用Qt网络类需要:
#include <QtNetwork>
要链接到Qt网络模块需要:
QT += network
名称空间
| 名称 | 描述 |
|---|---|
| QSsl | 定义Qt网络模块中SSL类公用的枚举 |
网络类
| 名称 | 描述 |
|---|---|
| QAbstractNetworkCache | The interface for cache implementations |
| QNetworkCacheMetaData | Cache information |
| QHttpMultiPart | Resembles a MIME multipart message to be sent over HTTP |
| QHttpPart | Holds a body part to be used inside a HTTP multipart MIME message |
| QNetworkAccessManager | Allows the application to send network requests and receive replies |
| QNetworkCookie | 保存一个网络cookie |
| QNetworkCookieJar | Implements a simple jar of QNetworkCookie objects |
| QNetworkDiskCache | Very basic disk cache |
| QNetworkReply | Contains the data and headers for a request sent with QNetworkAccessManager |
| QNetworkRequest | Holds a request to be sent with QNetworkAccessManager |
| QNetworkConfigurationManager | Manages the network configurations provided by the system |
| QNetworkConfiguration | Abstraction of one or more access point configurations |
| QNetworkSession | Control over the system's access points and enables session management for cases when multiple clients access the same access point |
| QAuthenticator | Authentication object |
| QDnsDomainNameRecord | Stores information about a domain name record |
| QDnsHostAddressRecord | Stores information about a host address record |
| QDnsLookup | Represents a DNS lookup |
| QDnsMailExchangeRecord | Stores information about a DNS MX record |
| QDnsServiceRecord | Stores information about a DNS SRV record |
| QDnsTextRecord | Stores information about a DNS TXT record |
| QHostAddress | IP address |
| QHostInfo | Static functions for host name lookups |
| QNetworkDatagram | The data and matadata of a UDP datagram |
| QNetworkAddressEntry | Stores one IP address supported by a network interface, along with its associated netmask and broadcast address |
| QNetworkInterface | Listing of the host's IP addresses and network interfaces |
| QNetworkProxy | Network layer proxy |
| QNetworkProxyFactory | Fine-grained proxy selection |
| QNetworkProxyQuery | Used to query the proxy settings for a socket |
| QAbstractSocket | The base functionality common to all socket types |
| QLocalServer | Local socket based server |
| QLocalSocket | Local socket |
| QSctpServer | SCTP-based server |
| QSctpSocket | SCTP socket |
| QTcpServer | TCP-based server |
| QTcpSocket | TCP 套接字 |
| QUdpSocket | UDP 套接字 |
| QSslCertificate | Convenient API for an X509 certificate |
| QSslCertificateExtension | API for accessing the extensions of an X509 certificate |
| QSslCipher | Represents an SSL cryptographic cipher |
| QSslConfiguration | Holds the configuration and state of an SSL connection |
| QSslDiffieHellmanParameters | Interface for Diffie-Hellman parameters for servers |
| QSslEllipticCurve | Represents an elliptic curve for use by elliptic-curve cipher algorithms |
| QSslError | SSL error |
| QSslKey | Interface for private and public keys |
| QSslPreSharedKeyAuthenticator | Authentication data for pre shared keys (PSK) ciphersuites |
| QSslSocket | SSL encrypted socket for both clients and servers |
HTTP和FTP协议的高级网络操作
网络访问API是用于执行常见网络操作的类的集合.API在所使用的特定操作和协议(例如,通过HTTP获取和发布数据)上提供了一个抽象层,并且仅暴露了一般或高级概念的类,函数和信号。
QNetworkRequest: 类用来代表一个网络请求,也用做与请求相关的信息的通用容器,例如请求的头信息和加密信息等.构造QNetwrokRequest时使用的URL决定了请求所使用的协议,目前Http,Ftp和本地文件URL支持上传和下载.
QNetworkAccessManager:协调各种网络操作,当我们构造一个QNetwrokRequest后就要使用QNetworkAccessManager来把它分发出去并使用信号槽来报告进度.QNetworkAccessManager还负责协调使用Cookie来存储客户端上的数据,身份验证请求和代理的使用.每个应用程序或库可以创建一个或多个QNetworkAccessManager实例来处理网络通信.
QNetworkReply:表示网络请求的回复.当发出一个网络请求后由QNetworkAccessManager创建QNetworkReply.由于QNetworkReply是QIODevice的子类,因此可以同步或异步处理回复; 即作为阻塞或非阻塞操作。QNetworkReply提供的信号可用于单独监控每个回复,也可以使用QNetworkAccessManager的信号来达到此目的.