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

QT tcpserver

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 服务端有QTcpServer库,封装了监听操作server = new QTcpServer();// 直接监听,内部根据传入的ip和端口进行绑定server->listen(QHostAddress::AnyIPv4, SERVER_PORT);// 对server进行新的连接信号建立信号槽connect(server, &QTcpServer::newConnection, this, &Widget::newClientHandler);}Widget::~Widget()
{delete ui;
}void Widget::newClientHandler()
{// 将获取到的新的连接套接字中获取客户端ip和端口socket = server->nextPendingConnection();ui->hostLineEdit->setText(socket->peerAddress().toString());ui->portLineEdit->setText(QString::number(socket->peerPort()));// 新的消息到来时,connect 数据read和处理信号槽函数connect(socket, &QTcpSocket::readyRead, this, &Widget::clientInfoSlot);
}void Widget::clientInfoSlot()
{ui->chatLineEdit->setText(QString(socket->readAll()));
}void Widget::on_closeButton_clicked()
{socket->close();
}
// tcpclient
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);socket = new QTcpSocket;
}Widget::~Widget()
{delete ui;
}void Widget::on_connectButton_clicked()
{// 连接服务器socket->connectToHost(ui->hostLineEdit->text(), ui->portLineEdit->text().toInt());// 连接成功后,socket会发出一个connected的信号,使用lambda作为信号槽函数connect(socket, &QTcpSocket::connected, [this](){// 打开一个新的聊天窗口,这里不能局部变量,因为新窗口需要长久显示// 在堆区申请空间,否则对象生命周期结束后就释放了// 聊天窗口需要进行发送,所以需要socket// 原来的登录窗口需要进行隐藏this->hide();Chat *ct = new Chat(socket);ct->show();});
}
// 建立连接成功后的聊天窗口
#include "chat.h"
#include "ui_chat.h"
#
Chat::Chat(QTcpSocket *socket, QWidget *parent) :QWidget(parent),ui(new Ui::Chat)
{ui->setupUi(this);this->socket = socket;
}Chat::~Chat()
{delete ui;
}void Chat::on_sendButton_clicked()
{QByteArray ba;ba.append(ui->chatLineEdit->text());socket->write(ba);
}

相关文章:

QT tcpserver

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 服务端有QTcpServer库,封装了监听操作server new QTcpServer();// 直接监听,内部根…...

Android adb shell svc 知识详解

adb shell svc 详解 文章目录 adb shell svc 详解一、svc 常用命令: 二、svc 命令和使用示例:查看系统是否安装了svc1、svc2、svc help3、svc power svc wifi has been migrated to WifiShellCommand,simply perform translation to cmd wifi set-wifi-e…...

Debian12系统下LAMP环境中Nubuilder4.5的安装

一、环境搭建 按照官方的说法,Apache2和Nginx都可以的,实际上,你最好直接按照 Mariadb\Apache2\Php8.2 这个顺序,搭建LAMP环境较好。不然各种调试,还不一定能够成功。 相关搭建方法,属于一般操作&#xf…...

百度超级链BaaS服务平台调研

目录 一、菜单功能1.1、在线版1.2、服务版 二、其他说明2.1、服务平台的部署方式2.2、混合部署 百度超级链XuperChain管理平台文档地址:https://xuper.baidu.com/n/doc#/c8737c7b/1_0_0/c8737c7b 一、菜单功能 1.1、在线版 在线版功能稍多。 菜单子菜单/功能点子…...

计算机网络之TCP/IP协议第二篇:OSI参考模型详解

文章目录 写给自己的话 一:协议分层与OSI参考模型 二:通过对话理解分层 三:OSI参考模型...

Linux内核分析与应用2-内存寻址

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好,推荐观看 留此记录,蜻蜓点水,可作抛砖引玉 2.1 内存寻址 数据连续存储和选择读取思想,是目前我们使用的几乎所有机器运行背后的灵魂 计算机体系结构中的核心问题之一,就是如…...

苍穹外卖 day12 Echats 营业台数据可视化整合

苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系…...

代码随想录算法训练营day45|70. 爬楼梯(进阶版)|322. 零钱兑换|279.完全平方数

70. 爬楼梯(进阶版) 一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,… m阶就是物品,楼顶就是背包。 每一阶可以重复使用&#…...

数据结构和算法(3):列表

列表是一种线性数据结构&#xff0c;它允许在其中存储多个元素&#xff0c;并且可以动态地添加或删除元素。 循秩访问 可通过重载下标操作符&#xff0c;实现寻秩访问 template <typename T> // assert: 0 < r < size T List<T>::operator[](Rank r) cons…...

使用playright自动下载vscode已安装插件

import os import re import subprocess import traceback from playwright.sync_api import Playwright, sync_playwright, expect# 执行CMD命令 cmd_command "code --list-extensions" # 获取已安装扩展列表 process subprocess.Popen(cmd_command, stdoutsubpr…...

单片机语言实例:2、点亮数码管的多种方法

一、共阳数码管静态显示 程序实例1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c; //头文件包含特殊功能寄存器的定义void main (void) {P10xc0; //二进制 为 1100 0000 参考数码管排列&#xff0c;//可以得出0对应的段点…...

C#学习 - 初识类与名称空间

类&#xff08;class&#xff09;& 名称空间&#xff08;namespace&#xff09; 类是最基础的 C# 类型&#xff0c;是一个数据结构&#xff0c;是构成程序的主体 名称空间以树型结构组织类 using System; //前面的using就是引用名称空间 //相当于C语言的 #include <..…...

Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储

Ajax介绍 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。它允许在不刷新整个网页的情况下&#xff0c;通过在后台与服务器进行数据交换&#xff0c;实时更新网页的一部分。Ajax的主要特点包括&#xff1a; 异步通…...

JavaScript的面向对象

一、认识对象 1.概述 对象&#xff08;object&#xff09;是 JavaScript 语言的核心概念&#xff0c;也是最重要的数据类型。 什么是对象&#xff1f;简单说&#xff0c;对象就是一组“键值对”&#xff08;key-value&#xff09;的集合&#xff0c;是一种无序的复合数据集合…...

MybatisPlus 核心功能 条件构造器 自定义SQL Service接口 静态工具

MybatisPlus 快速入门 常见注解 配置_软工菜鸡的博客-CSDN博客 2.核心功能 刚才的案例中都是以id为条件的简单CRUD&#xff0c;一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外&#xff0c;修改、删除、查询的SQL语句都需要指定where条件。因此…...

TSN时间敏感网络

目录 时间敏感网络介绍 子协议介绍 时间同步 IEEE802.1AS 调度和流量整形 IEEE802.1Q IEEE802.1Qbv IEEE802.1cr IEEE802.1Qbu IEEE802.1Qch IEEE802.1Qav IEEE802.1Qcc 纠错机制与安全 IEEE802.1Qci IEEE802.1CB IEEE802.1Qca 参考 时间敏感网络介绍 TSN(Tim…...

【2023年数学建模国赛】C题解题思路

第一问 要求分析分析蔬菜各品类及单品销售量的分布规律及相互关系。该问题可以拆分成三个角度进行剖析。 1&#xff09;各种类蔬菜的销售量分布、蔬菜种类与销售量之间的关系&#xff1b;2&#xff09;各种类蔬菜的销售量的月份分布、各种类蔬菜销售量与月份之间的相关关系&a…...

5分钟 将“.py”文件转为“.pyd”文件

代码&#xff1a; from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize import osfile_list os.listdir("./") extensions [] for file in file_list:if file.endswith(".py") and file !…...

python 入门到精通(一)

文章目录 1.使用pycharm进行第一个程序的编写2.python基础语法篇2.1 常用的值类型2.2 注释2.3 变量2.4 数据类型2.5 数据类型转换2.6 什么是标识符2.7 运算符2.8 字符串扩展2.8.1 字符串拼接2.8.2 字符串格式化2.8.3 格式化的精度控制2.8.4 字符串格式化 - 快速写法2.8.5 字符串…...

AJAX (Asynchronous JavaScript And XML)异步的JavaScript 和 XML

1、概念 Asynchronous JavaScript And XML 异步的JavaScript 和 XML异步和同步&#xff1a;客户端和服务器端相互通信的基础上 同步&#xff1a;客户端必须等待服务端的响应。在等待的期间客户端不能做其他操作。异步&#xff1a;客户端不需要等待服务器端的响应。在服务器…...

深度学习草图到全栈代码生成:技术原理、实现挑战与工程实践

1. 项目概述&#xff1a;从草图到全栈应用的智能跃迁在软件开发领域&#xff0c;从产品原型到最终上线的代码实现&#xff0c;中间横亘着一条巨大的“实现鸿沟”。产品经理或设计师用Sketch、Figma等工具绘制出精美的界面草图&#xff0c;而工程师则需要将这些静态的视觉稿&…...

AI伦理实战:从偏见、可解释性到隐私保护的工程化解决方案

1. 项目概述&#xff1a;当AI从实验室走向现实&#xff0c;我们面临什么&#xff1f;几年前&#xff0c;我还在实验室里为一个模型的准确率提升0.5个百分点而兴奋不已。那时&#xff0c;“伦理”这个词&#xff0c;对我们这些埋头调参的工程师来说&#xff0c;似乎还停留在哲学…...

智能家居安全新突破:视觉AI如何实现从感知到认知的跨越

1. 项目概述&#xff1a;当视觉智能成为家庭安全的“火眼金睛”最近几年&#xff0c;智能家居的概念越来越火&#xff0c;从智能门锁到语音助手&#xff0c;似乎家里的一切都在变得“聪明”。但说实话&#xff0c;很多所谓的“智能”安全方案&#xff0c;比如单纯依靠门窗传感器…...

Next.js功能开关实践:用happykit/flags实现灰度发布与A/B测试

1. 项目概述&#xff1a;为什么我们需要一个功能开关系统&#xff1f;在软件开发&#xff0c;尤其是现代Web应用和微服务架构的迭代过程中&#xff0c;我们经常面临一个经典困境&#xff1a;新功能开发完成后&#xff0c;是直接全量发布给所有用户&#xff0c;还是先小范围灰度…...

音频AI DSP:低功耗边缘智能的硬件架构与实现

1. 项目概述&#xff1a;当音频AI遇见边缘DSP几年前&#xff0c;如果有人告诉我&#xff0c;一个比指甲盖还小的芯片&#xff0c;能在不到1毫瓦的功耗下&#xff0c;持续监听环境声音、识别特定关键词&#xff0c;甚至能分辨出你是在嘈杂的餐厅还是在安静的办公室&#xff0c;我…...

microeco:微生物组学分析工具的终极指南,让数据分析变得简单快速

microeco&#xff1a;微生物组学分析工具的终极指南&#xff0c;让数据分析变得简单快速 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco 面对海量的微生物组学数…...

如何高效使用DdddOcr:免费开源的离线验证码识别终极指南

如何高效使用DdddOcr&#xff1a;免费开源的离线验证码识别终极指南 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 在当今数字世界中&#xff0c;验证码识别已成为自动化测试、数据采集和网络安全测…...

如何用JPlag守护代码原创性:5分钟快速上手指南

如何用JPlag守护代码原创性&#xff1a;5分钟快速上手指南 【免费下载链接】JPlag State-of-the-Art Source Code Plagiarism & Collusion Detection. Check for plagiarism in a set of programs. 项目地址: https://gitcode.com/gh_mirrors/jp/JPlag 你是否曾担心…...

Nevis‘22基准:评估持续学习模型的计算效率与知识迁移能力

1. 项目概述&#xff1a;为什么我们需要一个全新的终身学习基准&#xff1f;在计算机视觉乃至整个机器学习领域&#xff0c;我们正面临一个日益尖锐的矛盾&#xff1a;一方面&#xff0c;我们希望模型能够像人类一样&#xff0c;在漫长的时间里持续学习新知识&#xff0c;不断进…...

AI编程助手成本优化:混合路由策略如何将API账单降低73%

1. 项目概述&#xff1a;当AI编程助手成为API预算的“吞金兽”如果你正在为团队开发或集成一个AI编程助手&#xff0c;并且看着每月五位数的API账单感到头皮发麻&#xff0c;这篇文章就是为你准备的。我亲眼见过不少开发团队&#xff0c;在享受着AI辅助编程带来的效率提升时&am…...