2023/10/4 -- ARM

 今日任务:QT实现TCP服务器客户端搭建的代码,现象

 ser:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);server = new QTcpServer(this);connect(server,&QTcpServer::newConnection,this,&Widget::newConnectionSlot);}Widget::~Widget()
{delete ui;
}void Widget::on_startButton_clicked()
{quint16 port = ui->portEdit->text().toUInt();//监听客户端的连接请求if(!server->listen(QHostAddress::Any,port)){QMessageBox::information(this,"失败","监听失败");return;}else{QMessageBox::information(this,"成功","服务器启动成功");}
}void Widget::newConnectionSlot()
{//qDebug()<<"您有新的客户端发来请求";QTcpSocket *s = server->nextPendingConnection();clientList.push_back(s);connect(s,&QTcpSocket::readyRead,this,&Widget::readyReadSlot);
}void Widget::readyReadSlot()
{for(int i = 0;i < clientList.size();i++){//判断当前套接字是否有效连接if(!clientList[i]->state()){//将该套接字移除客户端容易clientList.removeAt(i);}}for(int i = 0;i < clientList.size();i++){if(clientList[i]->bytesAvailable()){//将该套接字的数据读取出来QByteArray msg = clientList[i]->readAll();ui->msgWidget->addItem(QString::fromLocal8Bit(msg));for(int j = 0;j < clientList.size();j++){clientList[j]->write(msg);}}}
}

cli:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);server = new QTcpServer(this);connect(server,&QTcpServer::newConnection,this,&Widget::newConnectionSlot);}Widget::~Widget()
{delete ui;
}void Widget::on_startButton_clicked()
{quint16 port = ui->portEdit->text().toUInt();//监听客户端的连接请求if(!server->listen(QHostAddress::Any,port)){QMessageBox::information(this,"失败","监听失败");return;}else{QMessageBox::information(this,"成功","服务器启动成功");}
}void Widget::newConnectionSlot()
{//qDebug()<<"您有新的客户端发来请求";QTcpSocket *s = server->nextPendingConnection();clientList.push_back(s);connect(s,&QTcpSocket::readyRead,this,&Widget::readyReadSlot);
}void Widget::readyReadSlot()
{for(int i = 0;i < clientList.size();i++){//判断当前套接字是否有效连接if(!clientList[i]->state()){//将该套接字移除客户端容易clientList.removeAt(i);}}for(int i = 0;i < clientList.size();i++){if(clientList[i]->bytesAvailable()){//将该套接字的数据读取出来QByteArray msg = clientList[i]->readAll();ui->msgWidget->addItem(QString::fromLocal8Bit(msg));for(int j = 0;j < clientList.size();j++){clientList[j]->write(msg);}}}
}

效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148316.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

订单型批发制造企业经营分析123个指标大全(ODOO15/16)

ODOO-ERP搭建完成之后&#xff0c;我们重点是帮客户建立经营分析能力&#xff0c;以下是针对订单型企业的经营分析指标&#xff0c;涵盖业务运营的监控、资产构成、利润、盈亏点计算、资产运营效率等各方面&#xff0c;并且持续完善​。 有些企业不重视&#xff0c;觉得自己企业…

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

项目进展(六)-继续学习32位ADC芯片ADS1285

一、数据手册学习 1.1时序图 SPI时序图&#xff0c;这是很重要的一个地方&#xff0c;一定要在代码中将SPI配置成对应的模式。 先放一堆截图在这吧&#xff0c;一些引脚的功能及特性还未看到&#xff0c;等具体了解之后再详细介绍下面几张截图的时序&#xff1a; 1.2 内…

集合-Map系列

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 4.数据结构-哈希表_喜欢吃animal milk的博客-CSDN博客 5.集合-set系列集合-CSDN博客 6.集合-Map系列-CSDN博客 文章目…

MySQL之DQL

DQL是数据查询语言 SELECT语句 语法&#xff1a; SELECT {*,列名&#xff0c;函数等} FROM 表名;SELECT *&#xff1a;表示匹配所有列 FROM :提供数据源 例如:查询student表的所有记录 SELECT * FROM student;例如&#xff1a;查询学生姓名和地址&#xff1a; SELECT Stud…

Linux安装宝塔,并实现公网远程登录宝塔面板【内网穿透】

目录 前言 1. 安装宝塔 2. 安装cpolar内网穿透 3. 远程访问宝塔 4. 固定http地址 5. 配置二级子域名 6. 测试访问二级子域名 前言 宝塔面板作为建站运维工具&#xff0c;它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能&#xff0c;可提高…

SpringBoot结合Redisson实现分布式锁

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…

【已解决】opencv 交叉编译 ffmpeg选项始终为NO

一、opencv 交叉编译没有 ffmpeg &#xff0c;会导致视频打不开 在交叉编译时候&#xff0c;发现在 pc 端能用 opencv 打开的视频&#xff0c;但是在 rv1126 上打不开。在网上查了很久&#xff0c;原因可能是 交叉编译过程 ffmpeg 造成的。之前 ffmpeg 是直接用 apt 安装的&am…

css自学框架之选项卡

这一节我们学习切换选项卡&#xff0c;两种切换方式&#xff0c;一种是单击切换选项&#xff0c;一种是鼠标滑动切换&#xff0c;通过参数来控制&#xff0c;切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

FFmpeg 命令:从入门到精通 | FFmpeg 基本介绍

FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 基本介绍 FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 基本介绍FFmpeg 简介FFmpeg 基础知识复用与解复用编解码器码率和帧率 资料 FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 基本介绍 本系列文章要解决的问题&#xff1…

掌动智能:UI自动化测试工具的重要性和应用

在软件开发过程中&#xff0c;测试是至关重要的环节。而UI自动化测试工具则成为了测试团队提高效率、降低成本、保证软件质量的重要利器。本文将介绍UI自动化测试工具的概念和重要性&#xff0c;并探讨其在软件开发中的应用和好处。 一、UI自动化测试工具的概念 UI自动化测试工…

ASUS华硕飞行堡垒5笔记本FX504GM_FX80GM原装出厂Windows10系统

系统自带所有驱动、出厂主题壁纸、系统属性华硕专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序 下载链接&#xff1a;https://pan.baidu.com/s/1C8vPvqiwqoUY3PxC915LXg?pwdv079

18.示例程序(编码器接口测速)

STM32标准库开发-各章节笔记-查阅传送门_Archie_IT的博客-CSDN博客https://blog.csdn.net/m0_61712829/article/details/132434192?spm1001.2014.3001.5501 main.c #include "stm32f10x.h" // Device header #include "Delay.h" #incl…

如何在 Elasticsearch 中使用 Openai Embedding 进行语义搜索

随着强大的 GPT 模型的出现&#xff0c;文本的语义提取得到了改进。 在本文中&#xff0c;我们将使用嵌入向量在文档中进行搜索&#xff0c;而不是使用关键字进行老式搜索。 什么是嵌入 - embedding&#xff1f; 在深度学习术语中&#xff0c;嵌入是文本或图像等内容的数字表示…

智能合约漏洞,BEVO 代币损失 4.5 万美元攻击事件分析

智能合约漏洞&#xff0c;BEVO 代币损失 4.5 万美元攻击事件分析 一、事件背景 北京时间 2023 年 1 月 31 日&#xff0c;在 twitter 上看到这样一条消息&#xff1a; BEVO 代币被攻击&#xff0c;总共损失 45000 美元&#xff0c;导致 BEVO 代币的价格下跌了 99%。 有趣的是…

2023年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

JAVA 学习笔记 2年经验

文章目录 基础String、StringBuffer、StringBuilder的区别jvm堆和栈的区别垃圾回收标记阶段清除阶段 异常类型双亲委派机制hashmap和hashtable concurrentHashMap 1.7和1.8的区别java的数据结构排序算法&#xff0c;查找算法堆排序 ThreadLocal单例模式常量池synchronizedsynch…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一&#xff1a;函数的简介 1&#xff1a;概念和简介 2&#xff1a;创建一个函数对象 3&#xff1a;调用函数对象 4&#xff1a;函数对象的普通功能 5&#xff1a;使用函数声明来创建一个函数对象 6&#xff1a;使用函数声明创建一个匿名函数 一&#xff1a;函…

tiny模式基本原理整合

【Tiny模式】的基本构成 M【首头在首位】 U【/】 V【HTTP/】 Host H【真实ip】 XH \r回车 \n换行 \t制表 \ 空格 一个基本的模式构成 [method] [uri] [version]\r\nHost: [host]\r\n[method] [uri] [version]\r\nHost: [host]\r\n 检测顺序 http M H XH 有些地区 XH H M 我这边…

MySQL - mysql服务基本操作以及基本SQL语句与函数

文章目录 操作mysql客户端与 mysql 服务之间的小九九了解 mysql 基本 SQL 语句语法书写规范SQL分类DDL库表查增 mysql数据类型数值类型字符类型日期类型 示例修改&#xff08;表操作&#xff09; DML添加数据删除数据修改数据 DQL查询多个字段条件查询聚合函数分组查询排序查询…