QT之tcp通信的简单例程

news/2025/2/12 11:02:36/

QT之tcp通信的简单例程

    • 例1 客户端
    • 例2 服务端

例1 客户端

#include <QTcpSocket>  
#include <QHostAddress>  int main(int argc, char *argv[])  
{  QApplication app(argc, argv);  QTcpSocket socket;  socket.connectToHost(QHostAddress::LocalHost, 1234);  if (socket.waitForConnected()) {  socket.write("Hello, server!");  if (socket.waitForBytesWritten()) {  if (socket.waitForReadyRead()) {  qDebug() << "Received data:" << socket.readAll();  }  }  }  return app.exec();  
}

例2 服务端

#include <QTcpServer>  
#include <QTcpSocket>  
#include <QMessageBox>  class MyTcpServer : public QTcpServer  
{  Q_OBJECT  public:  explicit MyTcpServer(QObject *parent = 0) : QTcpServer(parent)  {  if (!this->listen(QHostAddress::Any, 1234)) {  QMessageBox::critical(0, "Server Error", "Unable to start the server:" + this->errorString());  exit(EXIT_FAILURE);  }  }  protected:  void incomingConnection(qintptr socketDescriptor) override  {  QTcpSocket* socket = new QTcpSocket(this);  socket->setSocketDescriptor(socketDescriptor);  connect(socket, &QTcpSocket::readyRead, this, [socket]() {  QByteArray data = socket->readAll();  qDebug() << "Received data:" << data;  socket->write("Hello, client!");  });  connect(socket, &QTcpSocket::disconnected, this, [socket]() {  qDebug() << "Client disconnected:" << socket->peerAddress().toString();  socket->deleteLater();  });  }  
};  int main(int argc, char *argv[])  
{  QApplication app(argc, argv);  MyTcpServer server;  return app.exec();  
}

Qt 的 TCP 类(QTcpSocket 和 QTcpServer)创建简单的 TCP 客户端和服务器。在示例 1 中,我们创建了一个 TCP 客户端,连接到本地主机上的端口 1234,并发送一条消息给服务器。在示例 2 中,我们创建了一个 TCP 服务器,监听本地主机上的端口 1234,并在接收到客户端连接时发送一条消息给客户端。这些示例可以作为你开始使用 Qt TCP 通信的基础。


http://www.ppmy.cn/news/1137944.html

相关文章

【TensorFlow Hub】:有 100 个预训练模型等你用

要访问TensorFlow Hub&#xff0c;请单击此处 — https://www.tensorflow.org/hub 一、说明 TensorFlow Hub是一个库&#xff0c;用于在TensorFlow中发布&#xff0c;发现和使用可重用模型。它提供了一种使用预训练模型执行各种任务&#xff08;如图像分类、文本分析等&#xf…

第三课 哈希表、集合、映射

文章目录 第三课 哈希表、集合、映射lc1.两数之和--简单题目描述代码展示 lc30.串联所有单词的子串--困难题目描述代码展示 lc49.字母异位分组--中等题目描述代码展示 lc874.模拟行走机器人--中等题目描述代码展示 lc146.LRU缓存--中等题目描述相关补充思路讲解代码展示图示理解…

C语言之自定义类型_结构体篇(1)

目录 什么是结构&#xff1f; 结构体类型的声明 常规声明 特殊声明-匿名结构体 结构体变量的定义和初始化和访问 定义 初始化 访问 嵌套结构体 结构体的自引用 什么是结构体的自引用 NO1. NO2. 热门考点&#xff1a;结构体内存对齐 产生内存对齐 NO1 NO2 …

推荐系统实践 笔记

诸神缄默不语-个人CSDN博文目录 这是我2020年写的笔记&#xff0c;我从印象笔记搬过来公开。 如果那年还在读本科的同学也许有印象&#xff0c;那年美赛出了道根据电商评论给商户提建议的题。其实这件事跟推荐系统关系不大&#xff0c;但我们当时病急乱投医&#xff0c;我打开…

MySQL的结构化语言 DDL DML DQL DCL

一、SQL结构化语言介绍 数据查询语言DQL&#xff1a;其语句称为“数据检索语言”&#xff0c;用以从库中获取数据&#xff0c;确定数据怎样在应用程序给出&#xff0c;保留select是dql&#xff08;也是所有sql&#xff09;用的最多的动词 数据操作语言DML:其语句包括动词insert…

JVM篇---第五篇

系列文章目录 文章目录 系列文章目录一、简述Java的对象结构二、如何判断对象可以被回收?三、JVM的永久代中会发生垃圾回收么?一、简述Java的对象结构 Java对象由三个部分组成:对象头、实例数据、对齐填充。 对象头由两部分组成,第一部分存储对象自身的运行时数据:哈希码…

2023版 STM32实战6 输出比较(PWM)包含F407/F103方式

输出比较简介和特性 -1-只有通用/高级定时器才能输出PWM -2-占空比就是高电平所占的比例 -3-输出比较就是输出不同占空比的信号 工作方式说明 -1-1- PWM工作模式 -1-2- 有效/无效电平 有效电平可以设置为高或低电平&#xff0c;是自己配置的 周期选择与计算 周期重…

时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测

时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测 目录 时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 EMD-iCHOAGR…