- 博客(60)
- 资源 (24)
- 收藏
- 关注
原创 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 3237
原创 HTTP协议的一些特点
1、应用 HTTP 协议时,必定是一端担任客户端角色,另一端担任服务器端角色。HTTP 协议能够明确区分哪端是客户端,哪端是服务器端。2、HTTP 协议规定,请求从客户端发出,服务器端响应该请求并返回。例:请求报文结构:响应报文结构:3、HTTP是无状态的协议。协议本身并不保留之前一次的请求或响应报文的信息。HTTP +Cookie可实现状态管理。...
2021-06-30 16:36:14 222
原创 三次握手图解
tcp有6种标志:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)握手过程中使用SYN、ACK两种标志。若在握手过程中某个阶段中断,TCP 协议会再次以相同的顺序发送相同的数据包。...
2021-06-30 14:43:53 390
原创 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 1317
原创 Qt网络编程:QNetworkCookie
一、描述QNetworkCookie 保存从网络接收到的 cookie。QNetworkCookie 使用 parseCookies() 函数从 HTTP 标头格式解析 cookie 。1.1、cookiecookie 是无状态协议(如 HTTP)用于跨请求维护某些持久信息。cookie 由远程服务器在响应请求时设置,并期望在发送进一步请求时将相同的 cookie 发回。cookie 有名称和值,但它们对应用程序是不透明的(也就是说,存储在其中的信息对应用程序没有意义)。 cook
2021-06-29 22:34:36 1860
原创 Qt网络编程:QNetworkReply
一、描述QNetworkReply 类封装了使用 QNetworkAccessManager 发布的请求相关的回复信息。QNetworkReply 是QIODevice的子类,这意味着一旦从对象中读取数据,它就不再由设备保留。因此,如果需要,应用程序有责任保留这些数据。注意:不要删除连接到errorOccurred() 或finished() 信号的槽中的对象。应该使用使用 deleteLater()。二、类型成员1、enum QNetworkReply::NetworkError:指.
2021-06-28 23:17:13 16581
原创 Qt网络编程:QNetworkRequest
一、描述QNetworkRequest 保存通过网络发送请求所需的信息。 它包含一个 URL 和一些可用于修改请求的辅助信息。二、类型成员1、enum QNetworkRequest::Attribute:QNetworkRequest 和 QNetworkReply 的属性。用于控制请求的行为并将返回的信息传递给应用程序。属性也是可扩展的,允许自定义实现传递自定义值。HttpStatusCodeAttribute:仅回复,类型:QMetaType::Int(无默认值) 表示从 HTTP .
2021-06-27 22:41:03 12220 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 793
原创 Qt网络编程:QDtlsClientVerifier
一、描述QDtlsClientVerifier 类实现服务器端 DTLS cookie 生成和验证。数据报安全协议极易受到各种拒绝服务攻击。两种常见的攻击类型:攻击者发送一系列握手发起请求,导致服务器分配过多资源并可能执行昂贵的加密操作。 攻击者使用受害者的伪造源发送一系列握手发起请求,使服务器充当放大器。通常,服务器会用一个证书消息回复受害机器,该消息可能非常大,从而使受害机器充满数据报。作为对这些攻击的对策,可以使用一种服务器可以部署的无状态 cookie 技术:作为对初始 Clie
2021-06-26 23:24:52 233
原创 Qt网络编程:QDtls
一、描述QDtls 类可用于使用用户数据报协议 (UDP) 与网络对等点建立安全连接。基于基本无连接 UDP 的 DTLS 连接意味着两个对等方首先必须通过调用 doHandshake() 成功完成 TLS 握手。握手完成后,可以使用 writeDatagramEncrypted() 将加密的数据报发送到对等方。来自对等方的加密数据报可以通过decryptDatagram() 解密。QDtls 旨在与 QUdpSocket 一起使用。由于 QUdpSocket 可以接收来自不同对等方的数据报,因
2021-06-26 22:39:12 611
原创 Qt网络编程:QAuthenticator
一、描述QAuthenticator 类通常用于 QNetworkAccessManager 的authenticationRequired() 信号和 QAbstractSocket 的proxyAuthenticationRequired() 信号中。该类提供了一种在访问需要身份验证的服务时将所需的身份验证信息传递回套接字的方法。QAuthenticator 支持以下认证方法:Basic NTLM version 2 Digest-MD5 SPNEGO/Negotiate除了身份验证
2021-06-26 17:36:10 658
原创 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 6454 1
原创 Qt网络编程:QSctpServer
一、描述QSctpServer 是 QTcpServer 的子类,用来接收QSctpSocket连接。在 TCP 仿真模式下,接受的客户端使用单个连续字节流进行数据传输,而 QSctpServer 就像一个普通的 QTcpServer。调用 nextPendingConnection() 来接受挂起的连接作为连接的 QTcpSocket。该函数返回一个指向 QAbstractSocket::ConnectedState 中的 QTcpSocket 的指针,可以使用该指针与客户端进行通信。此模式只允许
2021-06-25 12:34:13 444
原创 Qt网络编程:QSctpSocket
一、描述1.1、SCTP1、SCTP(流控制传输协议)是一种传输层协议,其作用类似于流行的TCP 和 UDP协议。2、与 UDP 一样,SCTP 也是面向消息的,但它确保消息的可靠、按序传输,并使用 TCP 等拥塞控制。3、SCTP 是面向连接的协议,它提供端点之间多个数据流的完整同时传输。这种多流允许数据通过独立的通道传递,因此如果一个流中的数据丢失,则其他流的传递不会受到影响。4、由于面向消息,SCTP 传输一系列消息,而不是像 TCP 那样传输不间断的字节流。就像在 UDP 中一样
2021-06-25 00:41:59 694
原创 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 899
原创 Qt网络编程:QLocalServer
一、描述此类用作接受传入的QLocalSocket连接。二、类型成员1、QLocalServer::SocketOption:此枚举描述了可用于创建socket的可用选项。这会更改支持socket访问权限的平台(Linux、Windows)上的访问权限。NoOptions:没有设置访问限制。 UserAccessOption:访问仅限于与socket创建者同一进程的用户。 GroupAccessOption:访问仅限于同一用户组。(Linux 上socket创建者也可以访问(即使不在同一
2021-06-24 13:26:25 2246
原创 Qt网络编程:QLocalSocket
一、描述此类在 Windows 上这是一个命名管道,在 Unix 上这是一个本地域socket。(命名管道和本地域socket都用于进程间通信)二、类型成员1、QLocalSocket::LocalSocketError:此枚举表示可能发生的错误。最近的错误可通过调用error() 来检索。ConnectionRefusedError:连接被对等方拒绝(或超时)。 PeerClosedError:远程套接字关闭了连接。 请注意,客户端套接字(即此套接字)将在发送远程关闭通知后关闭。 Se
2021-06-24 00:05:44 3350
原创 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 507
原创 Qt网络编程:QHstsPolicy
建议阅读:什么是HSTS,为什么要使用它?一、描述QHstsPolicy 类指定主机支持的 HTTP 严格传输安全策略 (HSTS)。HSTS 策略定义了一段时间,在此期间 QNetworkAccessManager 应该只以安全的方式访问主机。可以为此策略设置到期时间和主机名,并控制它是否适用于子域。二、类型成员1、QHstsPolicy::PolicyFlagIncludeSubDomains:指示策略是否必须包含子域。三、成员函数1、void setInclu..
2021-06-22 13:33:14 218
原创 Qt网络编程:QSslError
一、描述QSslError 提供了一个简单的 API,用于QSslSocket 在 SSL 握手期间的错误信息管理。二、类型成员1、QSslError::SslError:描述在 SSL 握手期间可能发生的所有已识别错误。NoError:无错误。 UnableToGetIssuerCertificate:无法获取证书。 UnableToDecryptCertificateSignature:无法解密证书签名。 UnableToDecodeIssuerPublicKey:无法解码发行者.
2021-06-22 12:42:43 297
原创 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 935 1
原创 Qt网络编程:QSslCertificateExtension(SSL拓展)
一、描述QSslCertificateExtension 提供对存储在 X509 证书中的扩展的访问。 可用信息取决于正在访问的扩展类型。所有 X509 证书扩展都具有以下属性:
2021-06-21 00:17:20 435
原创 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 4484
原创 QCryptographicHash的用法
QCryptographicHash 可用于生成二进制或文本数据的加密(不可逆的)哈希数据(不同长度的输入得到相同长度的输出)。hashLength(QCryptographicHash::Algorithm)可以获取所选散列方法的输出大小(以字节为单位)。例1: QCryptographicHash cryHash(QCryptographicHash::Md5); QByteArray data = "我是字符串"; cryHash.addData(data);
2021-06-20 21:49:54 2033 2
原创 Qt网络编程:DNS查找
1、QDnsLookup1.1、描述QDnsLookup 使用操作系统提供的机制来执行 DNS 查找。要执行查找,您需要指定名称和类型,然后调用 lookup() 槽。 完成后将发出finished() 信号。例如,您可以使用以下命令确定 XMPP 聊天客户端应连接到给定域的哪些服务器:...
2021-06-20 14:57:18 1273
原创 Qt网络编程:QTcpServer
一、描述此类使接受传入 TCP 连接成为可能。您可以指定端口或让 QTcpServer 自动选择一个。您可以侦听特定地址或所有机器的地址。调用 listen() 让服务器监听传入的连接。每次客户端连接到服务器时都会发出 newConnection() 信号。调用 nextPendingConnection() 来接受挂起的连接作为连接的 QTcpSocket。该函数返回一个指向 QAbstractSocket::ConnectedState 中的 QTcpSocket 的指针,您可以使用该指针与客户
2021-06-19 22:46:37 1372
原创 Qt网络编程:QUdpSocket使用示例
一、收发数据报1、发送数据报 udpSocket = new QUdpSocket(this); QByteArray datagram = "这是消息内容"; udpSocket->writeDatagram(datagram.data(), datagram.size(),QHostAddress::Broadcast, 45454);
2021-06-19 21:34:38 3799
原创 Qt网络编程:QAbstractSocket
一、描述QAbstractSocket 类提供所有Socket类型通用的基本功能。QAbstractSocket 是 QTcpSocket 和 QUdpSocket 的基类,包含这两个类的所有通用功能。如果您需要一个Socket,可以:子类化 QTcpSocket 或QUdpSocket。 创建一个原生Socket,实例化QAbstractSocket,并调用setSocketDescriptor()来包装原生Socket。TCP(传输控制协议)是一种可靠的、面向流的、面向连接的传输协.
2021-06-19 16:54:52 13194 1
原创 Qt网络编程:QNetworkInterface
一、描述QNetworkInterface 代表一个连接到运行程序的主机网络接口。每个网络接口可能包含零个或多个 IP 地址,每个 IP 地址都可选地与网络掩码和/或广播地址相关联。此类封装的数据如下:二、类型成员1、QNetworkInterface::InterfaceFlag:指定与网络接口关联的标志。IsUp:网络接口处于活动状态。 IsRunning:网络接口已分配资源。 CanBroadcast:网络接口工作在广播模式。 IsLoopBack:网络接口是一个环回接口
2021-06-18 00:11:06 5471
原创 Qt网络编程:QNetworkProxyFactory
一、描述QNetworkProxyFactory 是 QNetworkProxy 的扩展,允许应用程序根据请求代理的socket对使用哪些代理服务器进行更细粒度的控制。此类有个抽象类(含有一个纯虚函数)且方法都是静态的,所以这是一个工具类。二、成员函数1、[static] QList<QNetworkProxy> proxyForQuery(const QNetworkProxyQuery &query)检查socket代理设置详细信息,返回一个 QNetworkPro
2021-06-16 22:58:06 1299
原创 Qt网络编程:QNetworkProxyQuery
一、描述QNetworkProxyQuery 类用于查询socket的代理设置。QNetworkProxyQuery 保存正在创建的socket或正在发出的请求的详细信息。QNetworkProxyQuery 查询以下内容:查询类型。 要使用的本地端口号。 目标主机名。在连接socket的情况下,目标主机名是连接中的主机。(传递给 QTcpSocket::connectToHost() 的 hostName 参数或使用 QNetworkRequest 请求的 URL 的主机组件。) 目
2021-06-16 13:31:55 403
原创 Qt网络编程:QNetworkProxy
一、描述QNetworkProxy 提供了为 Qt 网络类配置网络层代理支持的方法。当前支持的类有 QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager。代理支持被设计为尽可能透明。使用以下代码使应用程序自动支持网络代理: QNetworkProxy proxy; proxy.setType(QNetworkProxy::Socks5Proxy); proxy.setHostName("p
2021-06-15 23:11:21 2730
原创 Qt网络编程:QNetworkAddressEntry
一、描述此类封装了网络接口。每个网络接口可以包含多个 IP 地址,这些 IP 地址又可以与网络掩码和/或广播地址相关联。此类封装的数据:二、类型成员1、QNetworkAddressEntry::DnsEligibilityStatus:此枚举指示给定的主机地址是否有资格在域名系统 (DNS) 或其他类似的域名解析机制中发布。如通过 DHCP 获得的地址通常是合格的,但加密生成的临时 IPv6 地址不合格。DnsEligibilityUnknown:Qt和操作系统无法确定是否应该发布
2021-06-14 21:09:47 1415
原创 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 11928
原创 【翻译】Qt网络编程概述
一、描述Qt Network 模块提供编写 TCP/IP 客户端和服务端的类。此模块提供的类分成三种类型:代表低级网络概念的低级类(如 QTcpSocket、QTcpServer 、 QUdpSocket) 高级类(如 QNetworkRequest、QNetworkReply 、 QNetworkAccessManager) 实现承载管理的类,如QNetworkConfiguration、QNetworkConfigurationManager、QNetworkSession 。二、Qt网.
2021-06-13 23:50:34 762
原创 Qt编写自定义控件:多彩滑动环
代码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>class Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = nullptr); ~Widget();protected: void paintEvent(QPaintEvent *event)override; void mousePressEven
2021-06-13 16:51:39 716
原创 HTTP代理服务器的工作原理
1、代理服务器在http通信中提供客户端对目标服务器的中转访问。2、一个http请求可能被多个代理发射器转发,后面的服务器称为前面服务器的上游服务器。3、代理分成多种类型:正向代理:要求客户端自己设置代理发射器地址,客户的每次请求都将直接发送到该代理服务器,并由代理服务器请求目标资源。 反向代理:被设置在发射器端。用代理发射器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。这种情况下,代理服务器对外表现为一个真实的服务器。各大网
2021-06-12 12:36:34 1751
原创 TCP和UDP服务流程
一、TCP和UDP服务的特点见TCP和UDP服务的特点。二、字节流和数据报这两个是数据传输形式范畴的概念。如图,字节流中的数据是连续传输的,取数据时可以取任意部分的数据。数据报传输则是以数据报为传输单元,取数据时按数据报一个个取。三、TCP字节流服务流程3.1、TCP发送当发送端的应用程序连续执行多次写操作时,TCP模块将这些数据存入TCP发送缓冲区。当TCP模块真正开始发送数据时,发送缓冲区中的数据被封装成数目不定(看数据总大小)的TCP报文发出。3.2、TCP接收
2021-06-12 11:01:23 601
编译好的qt5.15.2(mingw)和lvgl(8.1)版本的库,包含测试工程,可以直接运行
2024-02-19
台达DVP16ES2-qt串口通信测试程序
2024-01-29
Qt编写的模拟鼠标按下和按键按下的小工具
2022-09-19
websocket.zip
2020-11-08
websocket通信服务端与客户端.zip
2020-10-01
WebSocket.zip
2020-10-01
WebSocketServer.zip
2020-10-01
QT插件子工程.zip
2020-07-22
QT_Plugin demo.zip
2020-05-02
OpenCV 4.2.0 && Qt5.14.1 编译好的库
2020-03-22
QTableView鼠标滑过整行背景色改变.zip
2019-07-09
qt_vs2015_opencv410_release.zip
2019-06-06
msvs编译器 VS2015版32位QT qt_msvs_opencv346_build.zip
2019-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人