Qt网络编程
概述
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的信号来达到此目的.