Qt网络编程
文章平均质量分 74
友善啊,朋友
这个作者很懒,什么都没留下…
展开
-
Qt网络编程:QNetworkDatagram
一、描述QNetworkDatagram 可以与 QUdpSocket 类一起使用来表示包含在 UDP(用户数据报协议)数据报中的完整信息。 QNetworkDatagram 封装了一个数据报的以下信息:有效载荷数据。 发件人地址和端口号。 目的地址和端口号。 剩余跳数限制(在 IPv4 上,此字段通常称为“生存时间”- TTL)。 接收或发送数据报的网络接口索引。二、成员函数1、QNetworkDatagram makeReply(const QByteArray &payl原创 2021-07-03 14:34:07 · 2951 阅读 · 0 评论 -
Qt网络编程:QNetworkSession
一、描述QNetworkSession 封装网络会话。会话的配置参数是通过它所绑定的 QNetworkConfiguration 对象确定的。 根据会话的类型(单个接入点或服务网络),会话可能会链接到一个或多个网络接口。 通过打开和关闭网络会话,开发人员可以启动和停止系统网络接口。如果配置代表多个接入点(QNetworkConfiguration::ServiceNetwork),则可能支持更高级的功能,例如漫游。QNetworkSession 支持同一进程内的会话管理,并且根据平台的功能可能支原创 2021-07-03 12:14:58 · 1425 阅读 · 0 评论 -
Qt网络编程:QNetworkConfiguration
一、描述QNetworkConfiguration 封装了单个接入点或服务网络。单个接入点配置可以映射到一个网络接口。然而,单个网络接口可能并不总是只映射到一个接入点配置。同一网络设备的多种配置可以启用多个接入点。如智能手机允许用户管理多个 WLAN 配置,而设备本身只有一个 WLAN 网络设备。QNetworkConfiguration 也支持服务网络的概念。这一概念允许将多个接入点配置分组为一个实体。这样的组称为服务网络,在需要到特定目标网络(例如公司网络)的网络会话的情况下可能是有益的。使原创 2021-07-02 23:39:12 · 1469 阅读 · 0 评论 -
Qt网络编程:QNetworkAccessManager
一、描述1、Qt网络访问 API 是围绕 QNetworkAccessManager 对象构建的,该对象保存它发送的请求的通用配置和设置。一个 QNetworkAccessManager 实例应该足以满足整个 Qt 应用程序网络访问的需求。 由于 QNetworkAccessManager 是基于 QObject 的,所以只能在它所属的线程中使用。2、一旦创建了 QNetworkAccessManager 对象,应用程序就可以使用它通过网络发送请求。它提供了一组标准函数,它们接受一个请求和可选数据,原创 2021-07-01 23:13:57 · 15865 阅读 · 0 评论 -
Qt网络编程:QNetworkCacheMetaData
一、描述QNetworkCacheMetaData 为网络缓存元数据。提供有关缓存文件的信息,包括 url、上次修改时间、创建缓存文件的时间、文件头、文件是否应保存到磁盘上。二、成员函数1、QHash<QNetworkRequest::Attribute, QVariant>attributes()返回此缓存项存储的所有属性。2、bool isValid()如果此网络缓存元数据具有已设置的属性,则返回 true。3、QList<RawHeader>.原创 2021-07-01 22:43:34 · 322 阅读 · 0 评论 -
Qt网络编程:QAbstractNetworkCache和QNetworkDiskCache
QAbstractNetworkCache一、描述QAbstractNetworkCache 是 QNetworkAccessManager 使用的标准缓存的基类。 此类为抽象类,不能被实例化。二、成员函数1、void clear()从缓存中删除所有项目。纯虚函数。2、qint64 cacheSize()返回缓存占用的当前大小。根据缓存实现,这可能是磁盘或内存大小。纯虚函数。3、QIODevice * data(const QUrl &url)返回与 .原创 2021-07-01 22:09:05 · 760 阅读 · 0 评论 -
Qt网络编程:QHttpMultiPart
一、描述QHttpMultiPart 封装HTTP multipart MIME消息,此消息将通过 HTTP 发送。QHttpMultiPart 的边界由字符串“boundary_.oOo._”后跟随机字符构成,并确保唯一性。仍然可以通过 setBoundary() 设置边界。例如,以下代码片段构造了一个包含文本部分和图像部分的HTTP multipart MIME 消息: QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiP..原创 2021-06-30 22:18:55 · 3382 阅读 · 0 评论 -
Qt网络编程:QHttpPart
HTTP multipart MIME 消息由QHttpMultiPart 封装。而 QHttpPart 类封装了 HTTP multipart MIME 消息中的正文部分。一个 QHttpPart 由一个头块和一个数据块组成,它们之间由空行相互分隔。如: Content-Type: text/plain Content-Disposition: form-data; name="text" here goes the body用代码表示是: QHttpPart text...原创 2021-06-30 13:39:20 · 1349 阅读 · 0 评论 -
Qt网络编程:QNetworkCookie
一、描述QNetworkCookie 保存从网络接收到的 cookie。QNetworkCookie 使用 parseCookies() 函数从 HTTP 标头格式解析 cookie 。1.1、cookiecookie 是无状态协议(如 HTTP)用于跨请求维护某些持久信息。cookie 由远程服务器在响应请求时设置,并期望在发送进一步请求时将相同的 cookie 发回。cookie 有名称和值,但它们对应用程序是不透明的(也就是说,存储在其中的信息对应用程序没有意义)。 cook原创 2021-06-29 22:34:36 · 1928 阅读 · 0 评论 -
Qt网络编程:QNetworkReply
一、描述QNetworkReply 类封装了使用 QNetworkAccessManager 发布的请求相关的回复信息。QNetworkReply 是QIODevice的子类,这意味着一旦从对象中读取数据,它就不再由设备保留。因此,如果需要,应用程序有责任保留这些数据。注意:不要删除连接到errorOccurred() 或finished() 信号的槽中的对象。应该使用使用 deleteLater()。二、类型成员1、enum QNetworkReply::NetworkError:指.原创 2021-06-28 23:17:13 · 17179 阅读 · 0 评论 -
Qt网络编程:QNetworkRequest
一、描述QNetworkRequest 保存通过网络发送请求所需的信息。 它包含一个 URL 和一些可用于修改请求的辅助信息。二、类型成员1、enum QNetworkRequest::Attribute:QNetworkRequest 和 QNetworkReply 的属性。用于控制请求的行为并将返回的信息传递给应用程序。属性也是可扩展的,允许自定义实现传递自定义值。HttpStatusCodeAttribute:仅回复,类型:QMetaType::Int(无默认值) 表示从 HTTP .原创 2021-06-27 22:41:03 · 12502 阅读 · 1 评论 -
Qt网络编程:DTLS 服务端和客户端通信(官方Demo)
一、服务端 QUdpSocket serverSocket; QSslConfiguration serverConfiguration;//ssl配置信息 QDtlsClientVerifier cookieSender;//DTLS cookie校验器 QList<std::unique_ptr<QDtls>> knownClientList;//储存连接1.1、服务端配置 connect(&serverSocket,原创 2021-06-27 17:16:22 · 843 阅读 · 0 评论 -
Qt网络编程:QDtlsClientVerifier
一、描述QDtlsClientVerifier 类实现服务器端 DTLS cookie 生成和验证。数据报安全协议极易受到各种拒绝服务攻击。两种常见的攻击类型:攻击者发送一系列握手发起请求,导致服务器分配过多资源并可能执行昂贵的加密操作。 攻击者使用受害者的伪造源发送一系列握手发起请求,使服务器充当放大器。通常,服务器会用一个证书消息回复受害机器,该消息可能非常大,从而使受害机器充满数据报。作为对这些攻击的对策,可以使用一种服务器可以部署的无状态 cookie 技术:作为对初始 Clie原创 2021-06-26 23:24:52 · 248 阅读 · 0 评论 -
Qt网络编程:QDtls
一、描述QDtls 类可用于使用用户数据报协议 (UDP) 与网络对等点建立安全连接。基于基本无连接 UDP 的 DTLS 连接意味着两个对等方首先必须通过调用 doHandshake() 成功完成 TLS 握手。握手完成后,可以使用 writeDatagramEncrypted() 将加密的数据报发送到对等方。来自对等方的加密数据报可以通过decryptDatagram() 解密。QDtls 旨在与 QUdpSocket 一起使用。由于 QUdpSocket 可以接收来自不同对等方的数据报,因原创 2021-06-26 22:39:12 · 635 阅读 · 0 评论 -
Qt网络编程:QAuthenticator
一、描述QAuthenticator 类通常用于 QNetworkAccessManager 的authenticationRequired() 信号和 QAbstractSocket 的proxyAuthenticationRequired() 信号中。该类提供了一种在访问需要身份验证的服务时将所需的身份验证信息传递回套接字的方法。QAuthenticator 支持以下认证方法:Basic NTLM version 2 Digest-MD5 SPNEGO/Negotiate除了身份验证原创 2021-06-26 17:36:10 · 692 阅读 · 0 评论 -
Qt网络编程:QSslSocket
一、描述QSslSocket 建立安全、加密的 TCP 连接,您可以使用它来传输加密数据。它可以在客户端和服务器模式下运行,支持 SSL 协议,包括 SSL 3 和 TLS 1.2。 默认情况下,QSslSocket 仅使用被认为是安全的 SSL 协议 (QSsl::SecureProtocols),但您可以通过调用 setProtocol() 来更改 SSL 协议,只要您在握手开始之前执行此操作即可。在Socket进入 ConnectedState 后,SSL 加密在现有 TCP 流之上运行。有两原创 2021-06-26 16:55:01 · 6806 阅读 · 1 评论 -
Qt网络编程:QSctpServer
一、描述QSctpServer 是 QTcpServer 的子类,用来接收QSctpSocket连接。在 TCP 仿真模式下,接受的客户端使用单个连续字节流进行数据传输,而 QSctpServer 就像一个普通的 QTcpServer。调用 nextPendingConnection() 来接受挂起的连接作为连接的 QTcpSocket。该函数返回一个指向 QAbstractSocket::ConnectedState 中的 QTcpSocket 的指针,可以使用该指针与客户端进行通信。此模式只允许原创 2021-06-25 12:34:13 · 459 阅读 · 0 评论 -
Qt网络编程:QSctpSocket
一、描述1.1、SCTP1、SCTP(流控制传输协议)是一种传输层协议,其作用类似于流行的TCP 和 UDP协议。2、与 UDP 一样,SCTP 也是面向消息的,但它确保消息的可靠、按序传输,并使用 TCP 等拥塞控制。3、SCTP 是面向连接的协议,它提供端点之间多个数据流的完整同时传输。这种多流允许数据通过独立的通道传递,因此如果一个流中的数据丢失,则其他流的传递不会受到影响。4、由于面向消息,SCTP 传输一系列消息,而不是像 TCP 那样传输不间断的字节流。就像在 UDP 中一样原创 2021-06-25 00:41:59 · 722 阅读 · 0 评论 -
Qt网络编程:QLocalSocket使用示例
一、服务端 server = new QLocalServer(this); if (!server->listen("fortune")) { qDebug()<<"无法启动服务端:"<<server->errorString(); } connect(server, &QLocalServer::newConnection, this, &Server::sendFortune);//向客原创 2021-06-24 23:20:36 · 931 阅读 · 0 评论 -
Qt网络编程:QLocalServer
一、描述此类用作接受传入的QLocalSocket连接。二、类型成员1、QLocalServer::SocketOption:此枚举描述了可用于创建socket的可用选项。这会更改支持socket访问权限的平台(Linux、Windows)上的访问权限。NoOptions:没有设置访问限制。 UserAccessOption:访问仅限于与socket创建者同一进程的用户。 GroupAccessOption:访问仅限于同一用户组。(Linux 上socket创建者也可以访问(即使不在同一原创 2021-06-24 13:26:25 · 2326 阅读 · 0 评论 -
Qt网络编程:QLocalSocket
一、描述此类在 Windows 上这是一个命名管道,在 Unix 上这是一个本地域socket。(命名管道和本地域socket都用于进程间通信)二、类型成员1、QLocalSocket::LocalSocketError:此枚举表示可能发生的错误。最近的错误可通过调用error() 来检索。ConnectionRefusedError:连接被对等方拒绝(或超时)。 PeerClosedError:远程套接字关闭了连接。 请注意,客户端套接字(即此套接字)将在发送远程关闭通知后关闭。 Se原创 2021-06-24 00:05:44 · 3448 阅读 · 0 评论 -
Qt网络编程:QSslCipher
一、描述QSslCipher 类表示 SSL 加密密码。QSslCipher 存储有关一种加密密码的信息。它最常与 QSslSocket 一起使用,用于表示socket可以使用的密码。二、使用示例 QSslSocket *socket = new QSslSocket; socket->connectToHostEncrypted("www.baidu.com", 443); QSslSocket::connect(socket, static_cast<原创 2021-06-23 12:45:40 · 527 阅读 · 0 评论 -
Qt网络编程:QHstsPolicy
建议阅读:什么是HSTS,为什么要使用它?一、描述QHstsPolicy 类指定主机支持的 HTTP 严格传输安全策略 (HSTS)。HSTS 策略定义了一段时间,在此期间 QNetworkAccessManager 应该只以安全的方式访问主机。可以为此策略设置到期时间和主机名,并控制它是否适用于子域。二、类型成员1、QHstsPolicy::PolicyFlagIncludeSubDomains:指示策略是否必须包含子域。三、成员函数1、void setInclu..原创 2021-06-22 13:33:14 · 230 阅读 · 0 评论 -
Qt网络编程:QSslError
一、描述QSslError 提供了一个简单的 API,用于QSslSocket 在 SSL 握手期间的错误信息管理。二、类型成员1、QSslError::SslError:描述在 SSL 握手期间可能发生的所有已识别错误。NoError:无错误。 UnableToGetIssuerCertificate:无法获取证书。 UnableToDecryptCertificateSignature:无法解密证书签名。 UnableToDecodeIssuerPublicKey:无法解码发行者.原创 2021-06-22 12:42:43 · 313 阅读 · 0 评论 -
Qt网络编程:QSslKey示例
一、描述QSslKey 提供了一个简单的 API 来管理密钥(即*.key文件)。二、示例 QFile keyFile(":/server.key"); keyFile.open(QIODevice::ReadOnly); QByteArray password = "88888888";//创建文件时设置的密码 QSslKey key(&keyFile, QSsl::Rsa,QSsl::Pem,QSsl::PrivateKey,password);原创 2021-06-22 00:49:07 · 984 阅读 · 1 评论 -
Qt网络编程:QSslCertificateExtension(SSL拓展)
一、描述QSslCertificateExtension 提供对存储在 X509 证书中的扩展的访问。 可用信息取决于正在访问的扩展类型。所有 X509 证书扩展都具有以下属性:原创 2021-06-21 00:17:20 · 451 阅读 · 0 评论 -
Qt网络编程:QSslCertificate(SSL证书)
建议阅读:如何创建一个自签名的SSL证书(X509)创建自签名SSL证书Windows系统生成自签名SSL证书qt使用https协议获取数据的流程windows创建自签名SSL证书所需工具*.csr文件:证书签名请求文件*.key文件:私钥文件*.crt文件:证书文件一、描述QSslCertificate 存储 X509 证书结构(struct),通常用于验证身份并存储有关本地主机、远程连接的对等方或受信任的第三方证书颁发机构的信息。二、类型成员1..原创 2021-06-20 23:34:43 · 4649 阅读 · 0 评论 -
Qt网络编程:DNS查找
1、QDnsLookup1.1、描述QDnsLookup 使用操作系统提供的机制来执行 DNS 查找。要执行查找,您需要指定名称和类型,然后调用 lookup() 槽。 完成后将发出finished() 信号。例如,您可以使用以下命令确定 XMPP 聊天客户端应连接到给定域的哪些服务器:...原创 2021-06-20 14:57:18 · 1343 阅读 · 0 评论 -
Qt网络编程:QTcpServer
一、描述此类使接受传入 TCP 连接成为可能。您可以指定端口或让 QTcpServer 自动选择一个。您可以侦听特定地址或所有机器的地址。调用 listen() 让服务器监听传入的连接。每次客户端连接到服务器时都会发出 newConnection() 信号。调用 nextPendingConnection() 来接受挂起的连接作为连接的 QTcpSocket。该函数返回一个指向 QAbstractSocket::ConnectedState 中的 QTcpSocket 的指针,您可以使用该指针与客户原创 2021-06-19 22:46:37 · 1406 阅读 · 0 评论 -
Qt网络编程:QUdpSocket使用示例
一、收发数据报1、发送数据报 udpSocket = new QUdpSocket(this); QByteArray datagram = "这是消息内容"; udpSocket->writeDatagram(datagram.data(), datagram.size(),QHostAddress::Broadcast, 45454);原创 2021-06-19 21:34:38 · 3851 阅读 · 0 评论 -
Qt网络编程:QAbstractSocket
一、描述QAbstractSocket 类提供所有Socket类型通用的基本功能。QAbstractSocket 是 QTcpSocket 和 QUdpSocket 的基类,包含这两个类的所有通用功能。如果您需要一个Socket,可以:子类化 QTcpSocket 或QUdpSocket。 创建一个原生Socket,实例化QAbstractSocket,并调用setSocketDescriptor()来包装原生Socket。TCP(传输控制协议)是一种可靠的、面向流的、面向连接的传输协.原创 2021-06-19 16:54:52 · 13785 阅读 · 1 评论 -
Qt网络编程:QNetworkInterface
一、描述QNetworkInterface 代表一个连接到运行程序的主机网络接口。每个网络接口可能包含零个或多个 IP 地址,每个 IP 地址都可选地与网络掩码和/或广播地址相关联。此类封装的数据如下:二、类型成员1、QNetworkInterface::InterfaceFlag:指定与网络接口关联的标志。IsUp:网络接口处于活动状态。 IsRunning:网络接口已分配资源。 CanBroadcast:网络接口工作在广播模式。 IsLoopBack:网络接口是一个环回接口原创 2021-06-18 00:11:06 · 5713 阅读 · 0 评论 -
Qt网络编程:QNetworkProxyFactory
一、描述QNetworkProxyFactory 是 QNetworkProxy 的扩展,允许应用程序根据请求代理的socket对使用哪些代理服务器进行更细粒度的控制。此类有个抽象类(含有一个纯虚函数)且方法都是静态的,所以这是一个工具类。二、成员函数1、[static] QList<QNetworkProxy> proxyForQuery(const QNetworkProxyQuery &query)检查socket代理设置详细信息,返回一个 QNetworkPro原创 2021-06-16 22:58:06 · 1357 阅读 · 0 评论 -
Qt网络编程:QNetworkProxyQuery
一、描述QNetworkProxyQuery 类用于查询socket的代理设置。QNetworkProxyQuery 保存正在创建的socket或正在发出的请求的详细信息。QNetworkProxyQuery 查询以下内容:查询类型。 要使用的本地端口号。 目标主机名。在连接socket的情况下,目标主机名是连接中的主机。(传递给 QTcpSocket::connectToHost() 的 hostName 参数或使用 QNetworkRequest 请求的 URL 的主机组件。) 目原创 2021-06-16 13:31:55 · 424 阅读 · 0 评论 -
Qt网络编程:QNetworkProxy
一、描述QNetworkProxy 提供了为 Qt 网络类配置网络层代理支持的方法。当前支持的类有 QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager。代理支持被设计为尽可能透明。使用以下代码使应用程序自动支持网络代理: QNetworkProxy proxy; proxy.setType(QNetworkProxy::Socks5Proxy); proxy.setHostName("p原创 2021-06-15 23:11:21 · 2898 阅读 · 0 评论 -
Qt网络编程:QNetworkAddressEntry
一、描述此类封装了网络接口。每个网络接口可以包含多个 IP 地址,这些 IP 地址又可以与网络掩码和/或广播地址相关联。此类封装的数据:二、类型成员1、QNetworkAddressEntry::DnsEligibilityStatus:此枚举指示给定的主机地址是否有资格在域名系统 (DNS) 或其他类似的域名解析机制中发布。如通过 DHCP 获得的地址通常是合格的,但加密生成的临时 IPv6 地址不合格。DnsEligibilityUnknown:Qt和操作系统无法确定是否应该发布原创 2021-06-14 21:09:47 · 1465 阅读 · 0 评论 -
Qt网络编程:QHostAddress(主机地址)
一、描述QHostAddress 以独立于平台和协议的方式保存 IPv4 或 IPv6 地址。此类通常与 QTcpSocket、QTcpServer 和 QUdpSocket 一起使用以连接到主机或设置服务器。二、类型成员1、QHostAddress::SpecialAddress:特殊地址Null:空地址对象。等效于 QHostAddress()。 LocalHost:IPv4 本地主机地址。等效于 QHostAddress("127.0.0.1")。 LocalHostIPv6:IP原创 2021-06-14 15:45:35 · 12243 阅读 · 0 评论 -
【翻译】Qt网络编程概述
一、描述Qt Network 模块提供编写 TCP/IP 客户端和服务端的类。此模块提供的类分成三种类型:代表低级网络概念的低级类(如 QTcpSocket、QTcpServer 、 QUdpSocket) 高级类(如 QNetworkRequest、QNetworkReply 、 QNetworkAccessManager) 实现承载管理的类,如QNetworkConfiguration、QNetworkConfigurationManager、QNetworkSession 。二、Qt网.原创 2021-06-13 23:50:34 · 785 阅读 · 0 评论 -
使用爬虫下载图片(Qt版)
模仿这篇博客:Java爬虫-使用爬虫下载图片!的内容。代码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = nullptr);原创 2021-02-09 22:30:02 · 973 阅读 · 0 评论 -
Qt网络编程:QNetworkConfigurationManager
一、描述QNetworkConfigurationManager 提供对系统已知网络配置的访问,并使应用程序能够在运行时检测系统功能。二、类型成员1、enum QNetworkConfigurationManager::Capability:承载API的系统能力。CanStartAndStopInterfaces:可以启动和停止网络会话及其底层接入点。 如果未设置此标志,则 QNetworkSession 只能监视但不能影响接入点的状态。在某些平台上,此功能可能需要提升用户权限。 此选项特.原创 2019-09-10 21:59:57 · 3081 阅读 · 0 评论
分享