🌟 Qt Network 模块核心功能及其函数详解
1. 基础 I/O 和抽象 (QAbstractSocket, QHostAddress)
| 核心类 (Class) | 功能描述 | 常用函数 (Function) 及作用 |
|---|---|---|
QAbstractSocket | 套接字基类。 提供了所有套接字操作的通用接口,如连接、断开、读写数据。实际使用时通常使用其子类 QTcpSocket 或 QUdpSocket。 | QAbstractSocket::open(): 继承自 QIODevice,用于打开套接字。QAbstractSocket::close(): 关闭套接字连接。QAbstractSocket::write(): 发送数据(写入缓冲区)。QAbstractSocket::readAll(): 读取所有可用数据。QAbstractSocket::state(): 获取当前连接状态。信号 readyRead(): 有新数据到达时发射。信号 disconnected(): 连接关闭时发射。 |
QHostAddress | IP 地址抽象。 用于存储和操作 IPv4 或 IPv6 地址。 | QHostAddress::setAddress(): 设置 IP 地址(字符串或数值)。QHostAddress::toString(): 将 IP 地址转换为标准字符串格式。QHostAddress::Any / QHostAddress::LocalHost: 静态常量,表示任意地址或本地环回地址。 |
2. TCP 通信 (Client/Server)
| 核心类 (Class) | 功能描述 | 常用函数 (Function) 及作用 |
|---|---|---|
QTcpSocket | TCP 客户端套接字。 提供可靠的、面向连接的数据流通信。 | QTcpSocket::connectToHost(): 连接到指定的 IP 地址和端口。QTcpSocket::disconnectFromHost(): 发起连接断开请求。QTcpSocket::waitForConnected(): 阻塞等待连接成功(非推荐在 GUI 线程使用)。QTcpSocket::peerAddress() / peerPort(): 获取远端地址和端口。 |
QTcpServer | TCP 服务器套接字。 监听传入的 TCP 连接请求。 | QTcpServer::listen(): 开始在指定地址和端口监听连接。QTcpServer::isListening(): 检查服务器是否正在监听。QTcpServer::nextPendingConnection(): 返回下一个挂起的 QTcpSocket 对象。信号 newConnection(): 有新的客户端连接时发射。 |
3. HTTP/Web 通信 (高级客户端)
| 核心类 (Class) | 功能描述 | 常用函数 (Function) 及作用 |
|---|---|---|
QNetworkAccessManager | 高级网络请求管理器。 用于发送 HTTP/HTTPS 请求,如 GET、POST、PUT 等。它是无状态的。 | QNetworkAccessManager::get() / post() / put(): 发送对应的 HTTP 请求,返回一个 QNetworkReply 指针。信号 finished(QNetworkReply*): 任何请求完成后发射。 |
QNetworkRequest | 网络请求信息封装。 用于设置请求的 URL、头部信息等。 | QNetworkRequest::setUrl(): 设置请求的目标 URL。QNetworkRequest::setRawHeader(): 设置自定义的 HTTP 头。 |
QNetworkReply | 网络请求响应对象。 封装了服务器的响应数据、HTTP 状态码等,是一个特殊的 QIODevice。 | QNetworkReply::readAll(): 读取响应体数据。QNetworkReply::error(): 获取请求发生的错误码。QNetworkReply::attribute(): 获取 HTTP 状态码等属性。QNetworkReply::close(): 关闭响应并释放资源。 |
4. DNS 和主机信息
| 核心类 (Class) | 功能描述 | 常用函数 (Function) 及作用 |
|---|---|---|
QHostInfo | 主机信息查找。 用于进行 DNS 查找(域名解析)。 | QHostInfo::lookupHost(): 异步发起域名解析请求。QHostInfo::fromName(): 阻塞式发起域名解析请求(不推荐在 GUI 线程使用)。信号 finished(const QHostInfo &): 异步查找完成时发射。 |
🛠️ Qt Network 模块常用全局函数
与 Core 模块类似,Qt Network 也有少量全局函数,但多数功能仍集中在类方法中。
| 函数名 | 描述 | 作用 |
|---|---|---|
QSslSocket::sslLibraryBuildVersionString() | SSL 库版本。 静态函数,返回编译 Qt 时使用的 SSL/TLS 库的版本信息(如 OpenSSL)。 | 用于调试和安全检查。 |
QSslSocket::supportsSsl() | SSL 支持检查。 静态函数,检查当前 Qt 版本是否已配置 SSL/TLS 支持。 | 用于判断是否能进行 HTTPS 或安全 TCP 连接。 |
总结:
在 Qt Network 模块中,编程模式通常是:
- 客户端 TCP: 使用
QTcpSocket,调用connectToHost(),连接后等待readyRead()信号进行读写。 - 服务器 TCP: 使用
QTcpServer,调用listen(),连接后等待newConnection()信号来获取新的QTcpSocket。 - HTTP/Web: 使用
QNetworkAccessManager,调用get()/post(),等待finished()信号来处理QNetworkReply。
理解这些核心类的成员函数和信号,就掌握了 Qt Network 模块的大部分功能。
3154

被折叠的 条评论
为什么被折叠?



