当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/435088.html

相关文章:

  • 【系统架构设计师-2023年】综合知识-答案及详解
  • 树莓派3B点灯(1)-- 四种方法
  • Android解析XML格式数据
  • 数学建模笔记—— 灰色关联分析[GRA]
  • ICM20948 DMP代码详解(13)
  • 【论软件需求获取方法及其应用】
  • 使用ESP8266和OLED屏幕实现一个小型电脑性能监控
  • Nexpose v6.6.266 for Linux Windows - 漏洞扫描
  • ess6新特性
  • C语言蓝桥杯:语言基础
  • axure之变量
  • vue缓存用法
  • 栈入门,括号匹配问题
  • Vue入门学习笔记-表单
  • TCP通信三次握手、四次挥手
  • 【实施文档】软件项目实施方案(Doc原件2024实际项目)
  • BeanFactory vs. ApplicationContext
  • JDBC客户端连接Starrocks 2.5
  • 004——双向链表和循环链表
  • framebuffer帧缓存
  • 24_竞赛中的高效并查集
  • 新手c语言讲解及题目分享(十七)--运算符与表达式专项练习
  • 香帅的金融学讲义:深入剖析与解读
  • java基础-IO(6)转换流InputStreamReader、OutputStreamWriter
  • 使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上
  • 91、K8s之ingress上集
  • NISP 一级 | 2.1 密码学
  • 深度学习速通系列:混淆矩阵是什么
  • 综合评价 | 基于熵权-变异系数-博弈组合法的综合评价模型(Matlab)
  • 模板与泛型编程笔记(一)