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

QT服务器练习

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//给服务器指针实例化空间server = new QTcpServer(this);
}Widget::~Widget()
{delete ui;
}//启动服务器按钮对应的槽函数
void Widget::on_startBtn_clicked()
{//获取ui界面上的端口号quint16 port = ui->portEdit->text().toUInt();//将服务器设置成监听状态if(server->listen(QHostAddress::Any, port)){QMessageBox::information(this,"","服务器启动成功");}else{QMessageBox::information(this,"","服务器启动失败");}//此时服务器已经进入监听状态connect(server,&QTcpServer::newConnection,this,&Widget::newConnection_slot);}
//处理newConnection信号的槽函数的实现
void Widget::newConnection_slot()
{qDebug()<<"新的客户端发来连接";//获取最新连接的客户端套接字QTcpSocket * s = server->nextPendingConnection();//将该套接字放入到客户端容器中socketList.push_back(s);connect(s,&QTcpSocket::readyRead,this,&Widget::readyRead_slot);
}
//关于readyRead信号对应的槽函数的实现
void Widget::readyRead_slot()
{//移除无效客户端for(int i = 0;i<socketList.count();i++){
//        socketList.at(i)->state(); if(socketList.at(i)->state()==0){//移除该客户端socketList.removeAt(i);}}//遍历客户端套接字,寻找是哪个客户端有数据待读for(int i=0;i<socketList.count();i++){//判断当前套接字是否有数据待读if(socketList.at(i)->bytesAvailable() != 0){QByteArray msg = socketList.at(i)->readAll();//将该数据展示至UI界面上ui->msgWidget->addItem(QString::fromLocal8Bit(msg));//将数据发送给所有客户端for(int j = 0;j<socketList.count();j++){//将数据写入到所有客户端套接字中socketList.at(j)->write(msg);}}}
}

思维导图

 

相关文章:

QT服务器练习

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间server new QTcpServer(this); }Widget::~Widget() {delete ui; }//启动服务器按钮对…...

Vcenter 创建 虚拟机配置 Thin Provision 模式 disk

介绍 在vCenter中选择虚拟磁盘格式通常也取决于您的需求和使用情况。 vSphere支持多种虚拟磁盘格式&#xff0c;以下是一些常见的格式&#xff1a; Thick Provision Lazy Zeroed&#xff1a;这是vSphere中的默认格式。它会预分配虚拟磁盘所需的存储空间&#xff0c;但只有在虚…...

初识mysql数据库之事务的概念及操作

目录 一、数据库多客户端访问问题 1. 数据库的CURD无限制带来的问题 2. 如何解决CURD导致的问题 二、事务的概念 1. 什么是事务 2. 事务的四个属性 3. mysql对事务的管理 4. 为什么会有事务 5. 事务的版本支持 三、事务的操作 1. 事务提交方式 2. 事务操作的准备工…...

MPL-2.0(Mozilla Public License 2.0)

MPL-2.0&#xff08;Mozilla Public License 2.0&#xff09;是一种开源软件许可证&#xff0c;由 Mozilla 组织于2012年发布&#xff0c;用于授权开源项目。MPL-2.0 是 MPL-1.1 许可证的继任版本&#xff0c;旨在更好地适应现代开源软件的发展和使用。 MPL-2.0 许可证的主要特…...

Qt+OpenCV+VTK在VS2017中配置路径

QtOpenCVVTK在VS2017中配置路径 《Qt环境配置》《OpenCV环境配置》《VTK环境配置》 《Qt环境配置》 包含目录&#xff1a; D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include…...

线性代数(应用篇):第五章:特征值与特征向量、第六章:二次型

文章目录 第5章 特征值与特征向量、相似矩阵(一) 特征值与特征向量1.定义2.性质3.求解(1)具体型矩阵试根法、多项式带余除法&#xff1a;三阶多项式分解因式 (2)抽象型矩阵 (二) 相似1.矩阵相似(1)定义(2)性质 2.相似对角化(1)定义(2)相似对角化的条件&#xff08;n阶矩阵A可相…...

Java8实战-总结9

Java8实战-总结9 Lambda表达式把Lambda付诸实践&#xff1a;环绕执行模式第1步&#xff1a;记得行为参数化第2步&#xff1a;使用函数式接口来传递行为第3步&#xff1a;执行一个行为第4步&#xff1a;传递Lambda 使用函数式接口PredicateConsumerFunction原始类型特化 Lambda表…...

大数据开发面试必问:Hive调优技巧系列一

Hive必问调优 Hive 调优拆解:Hive SQL 几乎是每一位互联网分析师的必备技能&#xff0c;相信很多小伙伴都有被面试官问到 Hive 优化问题的经历。所以掌握扎实的 HQL 基础尤为重要&#xff0c;hive优化也是小伙伴应该掌握的一项技能&#xff0c;本篇文章具体从hive建表优化、HQ…...

Jupyter Notebook 7重磅发布,新增多个特性!

本文分享Jupyter Notebook大版本v7.0.0更新亮点&#xff0c;及简单测试&#xff01; 近日&#xff0c;Jupyter Notebook大版本v7.0.0更新&#xff0c;Jupyter Notebook 7基于JupyterLab&#xff0c;因此它包含了过去几年JupyterLab中添加的许多新功能和改进&#xff0c;部分亮…...

linux V4L2子系统——v4l2架构(1)之整体架构

概述 V4L&#xff08;Video for Linux&#xff09;是Linux内核中关于视频设备的API接口&#xff0c;涉及视频设备的音频和视频信息采集及处理、视频设备的控制。V4L出现于Linux内核2.1版本&#xff0c;经过修改bug和添加功能&#xff0c;Linux内核2.5版本推出了V4L2&#xff08…...

Qt信号与槽机制的本质

引入 对象与对象之间的通信有多个方式&#xff0c;如果我们要提供一种对象之间的通信机制。这种机制&#xff0c;要能够给两个不同对象中的函数建立映射关系&#xff0c;前者被调用时后者也能被自动调用。 再深入一些&#xff0c;两个对象如果都互相不知道对方的存在&#xff…...

Linux:入门学习知识及常见指令

文章目录 入门介绍操作系统的概念Linux机器的使用Linux上的指令 对文件知识的补充文件的定义和一些含义文件和目录的存储绝对路径和相对路径 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令rm指令man指令cp指令mv指令cat指令more指令echo指令输出重定向 less指令find指令grep…...

K8s:Kubernetes 故障排除方法论

写在前面 博文内容为节译整理文中提到的工具大部分是商业软件&#xff0c;不是开源的&#xff0c;作为了解理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它…...

TCP 三次握手四次挥手浅析

大家都知道传输层中的TCP协议是面向连接的&#xff0c;提供可靠的连接服务&#xff0c;其中最出名的就是三次握手和四次挥手。 一、三次握手 三次握手的交互过程如下 喜欢钻牛角尖的我在学习三次握手的时候就想到了几个问题&#xff1a;为什么三次握手是三次&#xff1f;不是…...

【软件安装】MATLAB_R2021b for mac 安装

Mac matlab_r2021b 安装 下载链接&#xff1a;百度网盘 下载链接中所有文件备用。 我所使用的电脑配置&#xff1a; Macbook Pro M1 Pro 16512 系统 macOS 13.5 安装步骤 前置准备 无此选项者&#xff0c;自行百度 “mac 任何来源”。 1 下载好「MATLAB R2021b」安装文…...

电脑维护:10妙招,让你的电脑更加稳定!

你的电脑已经成为你工作、学习、娱乐的最佳工具之一&#xff0c;但是如果你不做好电脑维护工作&#xff0c;就可能面临着电脑变慢、蓝屏、崩溃等问题。在这篇文章中&#xff0c;我们将介绍10个电脑维护步骤&#xff0c;让你的电脑更加稳定&#xff01; 为什么需要电脑维护&…...

大数据面试题:Kafka的单播和多播

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 参考答案&#xff1a; 1、单播 一条消息只能被某一个消费者消费的模式称为单播。要实现消息单播&#xff0c;只要让这些消费者属于同一个消费者组即…...

python与深度学习(八):CNN和fashion_mnist二

目录 1. 说明2. fashion_mnist的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测…...

开发一个RISC-V上的操作系统(五)—— 协作式多任务

目录 往期文章传送门 一、什么是多任务 二、代码实现 三、测试 往期文章传送门 开发一个RISC-V上的操作系统&#xff08;一&#xff09;—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统&#xff08;二&#xff09;—— 系统引导程序&a…...

Mybatis-plus集合

目录 mybatis-plus集合1、简介2、特性3、开始使用4、QueryWrapper的使用5、补充 mybatis-plus集合 1、简介 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 m…...

避坑指南:vsftpd服务重启后仍报530?检查这5个隐藏配置项

避坑指南&#xff1a;vsftpd服务重启后仍报530&#xff1f;检查这5个隐藏配置项 当你已经按照常规流程检查了vsftpd服务状态、用户列表和基础配置文件&#xff0c;却依然遭遇"530 Permission denied"的顽固错误时&#xff0c;问题往往隐藏在那些容易被忽略的配置细节…...

Ext2Read:3个高效方案解决Windows读取Linux分区难题

Ext2Read&#xff1a;3个高效方案解决Windows读取Linux分区难题 【免费下载链接】ext2read A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows. 项目地址: https://gitcode.com/gh_mirrors/ex/ext2read 一、痛点直击&#xff…...

OpenClaw浏览器控制:GLM-4.7-Flash实现自动化数据采集

OpenClaw浏览器控制&#xff1a;GLM-4.7-Flash实现自动化数据采集 1. 为什么选择OpenClaw进行网页数据采集 去年我在做一个市场分析项目时&#xff0c;遇到了一个棘手的问题——需要从十几个行业网站定期采集数据&#xff0c;但每个网站的页面结构都不一样。手动复制粘贴效率…...

ssm+java2026年毕设唐山铂悦山养老院护理管理【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于养老院医护管理问题的研究&#xff0c;现有研究主要以医院信息管理系统&#xff08;HIS&#xff09;或综合性养老服务平台…...

如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名

<h3 id"seo_google">如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名</h3> <p>在当今数字化时代&#xff0c;网站的成功很大程度上取决于其在搜索引擎上的表现。搜索引擎优化&#xff08;SEO&#xff09;是一个复杂而又极其重要的领…...

ollama-QwQ-32B提示工程:提升OpenClaw操作准确率的10个模板

ollama-QwQ-32B提示工程&#xff1a;提升OpenClaw操作准确率的10个模板 1. 为什么需要专门优化OpenClaw的提示词&#xff1f; 第一次用OpenClaw执行文件整理任务时&#xff0c;我遭遇了灾难性结果——AI误将整个Downloads文件夹按修改日期排序后&#xff0c;把300多个文件全部…...

系统资源全景掌控:TaskExplorer如何重塑进程管理体验

系统资源全景掌控&#xff1a;TaskExplorer如何重塑进程管理体验 【免费下载链接】TaskExplorer Power full Task Manager 项目地址: https://gitcode.com/GitHub_Trending/ta/TaskExplorer 在数字化办公环境中&#xff0c;系统卡顿、资源占用异常、进程无响应等问题时常…...

别再只调API了!手把手教你用Python和OpenCV自定义Laplacian算子,玩转图像边缘检测

从零构建Laplacian算子&#xff1a;用Python和OpenCV揭开边缘检测的数学面纱 在计算机视觉领域&#xff0c;边缘检测是图像分析的基础操作之一。大多数开发者习惯直接调用OpenCV的cv2.Laplacian函数&#xff0c;却很少思考背后的数学原理。本文将带你从卷积核的底层设计出发&a…...

SurfaceView视觉优化实战:圆角与渐变蒙层的完美结合

1. SurfaceView视觉优化的核心价值 在Android开发中&#xff0c;SurfaceView因其独特的双缓冲机制和独立的绘图线程&#xff0c;成为视频播放、游戏渲染等高性能场景的首选组件。但原生SurfaceView的直角边框和单调的呈现方式&#xff0c;常常与现代化UI设计语言格格不入。我在…...

51单片机(九)—— 数码管动态扫描原理与实现

1. 数码管动态扫描原理揭秘 第一次接触多位数码管显示时&#xff0c;我盯着电路板百思不得其解&#xff1a;明明只有8个数据引脚&#xff0c;怎么能同时控制8位数码管显示不同内容&#xff1f;直到理解了动态扫描原理&#xff0c;才恍然大悟这背后的精妙设计。动态扫描本质上是…...