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的基础使用;

相关推荐
森G2 分钟前
48、柱状图---------QChart
c++·qt
cici158744 分钟前
非线性模型预测控制(NMPC)基于CasADi的MATLAB实现
开发语言·matlab
Tanecious.8 分钟前
蓝桥杯备赛:Day8-小苯的异或和
c++·蓝桥杯
王老师青少年编程15 分钟前
csp信奥赛c++中的递归和递推研究
c++·算法·递归·递推·csp·信奥赛
独特的螺狮粉16 分钟前
开源鸿蒙跨平台Flutter开发:量子态波函数坍缩系统-波动力学与概率云渲染架构
开发语言·flutter·华为·架构·开源·harmonyos
冰暮流星25 分钟前
javascript之dom访问属性
开发语言·javascript·dubbo
lsx20240626 分钟前
SQL Auto Increment 自动增长
开发语言
t1987512828 分钟前
MATLAB模糊数学模型(Fuzzy Mathematical Model)实现指南
开发语言·matlab
Evand J36 分钟前
MATLAB批量保存现有绘图窗口的方法,简易方法,直接保存到当前目录,不手动设置
开发语言·matlab·教程
忽而今夏&_&37 分钟前
python 刷题最基础的一些
开发语言·python