QT网络通信-TCP、UDP通信

时间记录:2024/1/17
pro文件添加模块network

一、TCP服务端

(1)创建TCP服务器对象QTcpServer
(2)为QTcpServer对象的newConnection信号绑定槽,用来监听TCP客户端的新连接,有新的客户端连接便会触发此信号
(3)使用nextPendingConnection方法获取连接的Tcp客户端对象QTcpSocket
(4)为QTcpSocketreadReady信号绑定槽,用来读取客户端发送到服务器端的消息,每次客户端有新消息发送,服务器端便会触发此信号
(5)QTcpSocketstateChanged信号可以用来监听客户端连接状态,槽函数中sender方法获取触发信号的对象,当检测到客户端连接断开时使用deleteLater方法清理对象内存,防止内存溢出
(6)获取连接的客户端IP和端口,使用QTcpSocket类的peerAddress方法和peerPort方法
(7)使用QTcpSocket对象的readwrite方法与客户端进行数据的收发
(8)QTcpServer类的findChildren方法可以获取连接的所有客户端对象
(9)QTcpServer类的listen方法用于监听本机IP和端口,即启动服务器
(10)QTcpServer类的close方法用于停止监听连接,表示不会有新的连接能连上,但是已经连接的客户端依旧可以发送信息

二、TCP客户端

(1)创建TCP客户端对象QTcpSocket
(2)为readReady信号绑定槽函数,监听数据的到来
(3)为stateChanged信号绑定槽函数,监听连接的状态变化
(4)使用writeread方法发送和读取信息
(5)使用bind方法绑定IP和端口
(6)使用connectToHost方法连接指定的服务器
(7)使用disconnectFromHost方法断开与服务器之间的连接

三、UDP通信

(1)创建UDP对象QUdpSocket
(2)为readReady信号绑定槽函数
(3)pendingDatagramSize方法获取接收到的数据大小
(4)hasPendingDatagrams方法判断是否有数据报到来
(5)readDatagram方法读取指定IP和端口发送过来的数据报
(6)bind方法绑定本机IP和端口号,即建立连接
(7)abort方法解除绑定,即断开连接
(8)writeDatagram方法向指定IP和端口的主机发送数据报,QHostAddress::Broadcast表示向局域网的所有IP指定端口发送数据报,即广播

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArrayList 可以添加 null 值吗?

如果你现在需要准备面试,可以关注我的公众号:”Tom聊架构“,回复暗号:”578“,领取一份我整理的50W字面试宝典,可以帮助你提高80%的面试通过率,价值很高!! ArrayList 中可…

Markdown 类图绘制详解

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请&#x1f…

水电站智能监测泄洪预警系统介绍

一、背景 近年来由于危险河道管理措施不到位,调峰电站泄水风险长期存在,信息通报制度缺失以及民众安全警觉性不高等因素导致的水电站在泄洪时冲走下游河道游客以及人民财产的事故频发。 二、系统介绍 水电站智能监测泄洪预警系统是一种集成了物联网、云…

Java SE入门及基础(20)

目录 类和对象 1. 类的由来 2. 如何定义类 语法 示例 3. 类图 4. 类和对象的关系 解释说明 语法 示例 示例 结论 Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 类和对象 1. 类的由来 人们在日常生活中,经常会将具有相同特征或者相同行为的事…

ElasticSearch的常用增删改查DSL和代码

es增删改查常用语法 我们日常开发中,操作数据库写sql倒是不可能忘记,但是操作es的dsl语句有时候很容易忘记,特地记录一下方便查找。 DSL语句 1、创建索引 -- 创建索引 PUT /my_index {"mappings": {"properties": {&…

AWS Cognito 实战指南

Amazon Cognito 是 AWS 提供的一项身份验证和访问控制服务,适用于构建安全的用户身份验证和访问控制功能。本指南将介绍如何使用 AWS Cognito 创建用户池和身份池,并在 Java 、 Python 和JavaScript应用程序中实现用户注册和登录功能。 步骤 1: 创建用户池 登录 AWS 控制台。…

GEE中Landsat、Sentinel、Modis主要数据集区别

一、Landsat 1. Collection 1/2 的区别 Collection 2 是Landsat Level 1 数据的又一次重大再处理,显著提高了绝对地理定位精度。 Collection1Collection2时间跨度1972~2021底1972~至今数据等级level 1level1:1972~2021底 level2:1982~至今 …

docker 安装mysql 并支持远程访问

docker mysql 安装 拉取镜像 docker pull mysql运行 mysql 容器 docker run --name mysql-container -e MYSQL_ROOT_PASSWORDmy-secret-pw -p 3306:3306 -d mysql:tag这里 mysql-container 是您给容器指定的名字,my-secret-pw 应替换为您希望设定的密码。tag 是镜…

路由器初始化配置、功能配置

实验环境 拓扑图 Ip规划表(各组使用自己的IP规划表) 部门 主机数量 网络地址 子网掩码 网关 可用ip Vlan 市场部 38 192.168.131.0 255.255.255.0 192.168.131.1 2-254 11 研发部 53 192.168.132.0 255.255.255.0 192.168.132.1 2-2…

Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版

一、Oracle21C PLSQL Developer 15 Oracle客户端文件下载 1、Oracl21C下载地址:Database Software Downloads | Oracle 中国 2、 PLSQL Developer 15下载地址:Registered download PL/SQL Developer - Allround Automations 3、 Oracle 客户端下载地址…

全球光伏知名企业-晶科能源联合泛微采知连,建立文控管理平台

晶科能源股份有限公司(简称“晶科能源”)是一家全球知名、极具创新力的太阳能科技企业。 (图片素材来自晶科能源官网) 公司战略性布局光伏产业链核心环节,聚焦光伏产品一体化研发制造和清洁能源整体解决方案提供&…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--具身智能、强化学习

专属领域论文订阅 VX关注 晓理紫,每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 分类: 大语言模型LLM视觉模型VLM扩散模型视觉导航具身智能,机器人强化学习开放词汇,检测分割 [晓理紫]每日论文分享…

【LabVIEW FPGA入门】FPGA中的数学运算

数值控件选板上的大部分数学函数都支持整数或定点数据类型,但是需要请注意,避免使用乘法、除法、倒数、平方根等函数,此类函数比较占用FPGA资源,且如果使用的是定点数据或单精度浮点数据仅适用于FPGA终端。 1.整数运算 支持的数…

【Java】IDEA中的JFormDesigner使用教程

目录 1 安装 JFormDesigner 插件2 JFormDesigner 使用教程2.1 新建JFormDesigner Form时的选项2.2 JFormDesigner Form界面布局2.3 JFormDesigner 组件2.3.1 Components基本组件2.3.2 Containers中间容器(面板)2.3.3 Windows顶级容器(窗口&am…

给科研人的 ML 开源发布工具包

什么是开源发布工具包? 恭喜你的论文成功发表,这是一个巨大的成就!你的研究成果将为学界做出贡献。 其实除了发表论文之外,你还可以通过发布研究的其他部分,如代码、数据集、模型等,来增加研究的可见度和采…

【从0上手cornerstone3D】如何加载nifti格式的文件

在线演示 支持加载的文件格式 .nii .nii.gz 代码实现 npm install cornerstonejs/nifti-volume-loader// ------------- 核心代码 Start------------------- // 注册一个nifti格式的加载器 volumeLoader.registerVolumeLoader("nifti",cornerstoneNiftiImageVolu…

Qt/C++编写视频监控系统83-自定义悬浮条信息

一、前言 一般视频控件上会给出个悬浮条,这个悬浮条用于显示分辨率或者一些用户期望看到的信息,一般常用的信息除了分辨率以外,还有帧率、封装格式、视频解码器名称、音频解码器名称、实时码率等,由于实际的场景不一样&#xff0…

G7易流:API连接实现无代码开发的电商平台和营销系统集成

【无代码开发的G7易流连接解决方案】 在今天的电商大环境下,效率和自动化不仅是提升业务运作成功的关键因素,更是决定电商平台生存与否的重要环节。G7易流,全球领先的物联网软件服务公司,对此深有体会。他们为电商行业提供了一种…

el-date-picker默认结束为当前时分秒

在element ui中的日期时间选择组件中默认是00:00,现在需求是点击默认结束时间为当前时分秒,查了很多资料写的都不准确 需求:实现日期时间组件可选择当前日期,比如当前是2024年01月17号下午17:21 那选中时必须结束时间为17&#x…

wpf DataGrid 实现拖拽变换位置,双击拖拽向下自动滚动

DataGrid_Drop事件是在拖放操作中释放拖动的对象时触发的事件。使用VisualTreeHelper.HitTest方法获取鼠标释放位置的目标元素。 循环向上遍历VisualTree,直到找到DataGridRow为止。 如果找到DataGridRow,则获取其索引。 检查索引是否有效,如…