QT QTcpSocket作为客户端

前言

QTcpSocket是Qt提供的关于TCP网络通信的类。QTcpSocket是一个异步的类,能够非阻塞式发送和接收数据。QTcpSocket内部封装了网络通信相关细节,对外提供便利的接口去帮助开发人员实现简历连接、断开连接、数据收发。

主要内容

基本使用方式

项目文件包含network

这里非常重要!!!

如果在Qt的pro文件中,不加入network,就无法找到<QTcpSockert>头文件和QTcpSocket类;

复制代码
QT += core gui network

创建QTcpSocket对象

复制代码
QTcpSocket* tcp = new QTcpSocket(this); 

连接服务端

使用QTcpSocket内部成员函数connectToHost

复制代码
tcp->connectToHost(ip, port);
  • ip:服务端ip地址

  • port:端口
    也可以是网址加端口

    tcp->connectToHost("www.xxxxx.com", port);

发送数据

使用函数write;
write有三种函数原型

复制代码
qint64 write(const char* data, qint64 len);
qint64 write(const char* data);
inline qint64 write(const QByteArray &data);

可以直接发送字符串

复制代码
tcp->write("this is a test");

接收数据

QTcpSocket当有数据传输过来,需要接收时,会发出一个名为readyRead()信号,可以通过该信号连接槽函数,从而获取数据;

复制代码
connect(socket, &QTcpSocket::readyRead, this, &YourClass::handleReadyRead); 
void ClassName::handleReadyRead() 
{
	while (socket->bytesAvailable() > 0) 
	{ 
		qDebug() << socket->readAll(); 
	} 
}

断开连接

可以调用 disconnectFromHost()close()方法来断开与服务器的连接:

复制代码
tcp->disconnectFromHost();
tcp->close();

总结

上述就是Qt封装的关于TCP网络通信的类------QTcpSocket的基础使用;

相关推荐
颜x小1 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
weixin_423652132 小时前
C#使用JObject
开发语言·c#
国科安芯2 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
汉克老师3 小时前
GESP2026年3月认证C++八级( 第三部分编程题(2、子图最短路)精讲
c++·最短路·floyd·gesp8级
霸道流氓气质3 小时前
Java中集成Smile 技术教程:从入门到工程实践
java·开发语言
BerrySen1784 小时前
迈向 Next-Gen Java:企业级高并发架构演进与大模型 Agent 落地深度实战
java·开发语言·架构
abcd_zjq4 小时前
海康线扫相机使用
c++·海康
十五年专注C++开发4 小时前
C++设计一个函数来求容器元素绝对值之和的平均值
c++·模板·accumulate
SilentSlot4 小时前
【C/C++】手写 DPDK 协议栈(十一):基于 PPS、SYN 比例和源 IP 熵的 DDoS 检测
c语言·c++·tcp/ip
用户8402409736084 小时前
使用 PyQt5 打造功能完备的 PDF 编辑器:从设计到实现全解析
qt