使用UDP实现发送和接收

 接收信息

void MainWindow::receiveMessages()
{QHostAddress peerAddr;quint16 peerPort;while (udpSocket->hasPendingDatagrams()) {/* udpSocket发送的数据报是 QByteArray类型的字节数组 */QByteArray datagram;/* 重新定义数组的大小 */datagram.resize(udpSocket->pendingDatagramSize());/* 读取数据,并获取发送方的 IP地址和端口 */udpSocket->readDatagram(datagram.data(), datagram.size(),  &peerAddr,  &peerPort);/* 转为字符串 */QString str = datagram.data();/* 显示信息到文本浏览框窗口 */textBrowser->append("接收来自" + peerAddr.toString() + ":" + QString::number(peerPort) + str);}
}

 单发


void MainWindow::sendMessages()
{/* 文本浏览框显示发送的信息 */textBrowser->append("发送:" + lineEdit->text());/* 要发送的信息,转为 QByteArray类型字节数组,数据一般少于 512个字节 */QByteArray data = lineEdit->text().toUtf8();/* 要发送的目标 Ip地址 */QHostAddress peerAddr = IPlist[comboBox->currentIndex()];/* 要发送的目标端口号 */quint16 peerPort = spinBox[1]->value();/* 发送消息 */udpSocket->writeDatagram(data, peerAddr, peerPort);
}

广播

void MainWindow::sendBroadcastMessages()
{/* 文本浏览框显示发送的信息 */textBrowser->append("发送:" + lineEdit->text());QByteArray data = lineEdit->text().toUtf8();/* 广播地址,一般为 255.255.255.255,* 同一网段内监听目标端口的程序都会接收到消息 */QHostAddress peerAddr = QHostAddress::Broadcast;/* 要发送的目标端口号 */quint16 peerPort = spinBox[1]->text().toInt();/* 发送消息 */udpSocket->writeDatagram(data, peerAddr, peerPort);
}

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

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

相关文章

K8S配置storage-class

简介 Kubernetes支持NFS存储,需要安装nfs-subdir-external-provisioner,它是一个存储资源自动调配器,它可将现有的NFS服务器通过持久卷声明来支持Kubernetes持久卷的动态分配。该组件是对Kubernetes NFS-Client Provisioner的扩展&#xff0…

Redis 主从同步 总结

前言 相关系列 《Redis & 目录》《Redis & 主从同步 & 源码》《Redis & 主从同步 & 总结》《Redis & 主从同步 & 问题》 参考文献 《Redis的主从复制和哨兵机制详解》 概述 简介 主从同步的本质是数据复制机制。主从同步机制用于将master…

Android 圆形进度条CircleProgressView 基础版

一个最基础的自定义View 圆形进度条,可设置背景色、进度条颜色(渐变色)下载进度控制;可二次定制度高; 核心代码: Overrideprotected void onDraw(NonNull Canvas canvas) {super.onDraw(canvas);int mW g…

得物App 3D球鞋博物馆亮相两博会,打造沉浸式消费新体验

近日,2024中国体育文化博览会、中国体育旅游博览会(简称“两博会”)在苏州国际展览中心拉开帷幕。得物App携手Apple Vision Pro共同打造的3D球鞋博物馆亮相两博会上海展区,并通过3D技术为观众呈现独特的沉浸式消费新体验。 在3D球…

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64工具下载安装设置国内镜像源(永久) node-v20.18.0-x64 工具 系统:Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v20.18…

【Leetcode】单调栈

单调栈 单调栈是一种高效的栈结构,常用来解决数组中元素顺序相关的问题,如“下一个更大元素”等。其核心思想是通过维护栈内元素的单调性,并记录元素的间顺序关系,以减少不必要的比较操作。通常情况下,由于每个元素入…

【技术点】用SQL语言操作关系型数据库Mysql中的数据(有练习资料)

用SQL语言操作关系型数据库Mysql中的数据 一、增删改查增数据删数据改数据查数据 二、触发器三、视图 练习题目链接 前言: 之前操作的时候大多时候都是用GPT生成的sql语句(有一说一真的实用),但是缺少自己完整独立完成sql语句书写…

ELK之路第四步——整合!打通任督二脉

ELK之路第四步——整合!打通任督二脉 前言1.架构2.下载资源3.整合开始1.分别启动三个es2.启动kibana3.新建filebeat_logstash.yml配置文件4.修改logstash的启动配置文件5.启动logstash6.启动filebeat7.Kibana查看 4.结语 前言 在开始本篇之前,你需要用到…

从CAB到PAB Oracle的AI 23.6(之一)

Oracle的CAB和PAB 这是甲骨文的客户大会Oracle China Customer Advisory Board Metting CAB缩写。和Oracle China Partner Advisory Board Metting PAB缩写。 这已经不是我第一次参加了。虽然现在有信创,但是技术人讨论技术还是要纯粹一点。所为纯粹就像精武英雄中…

electron知识整理和问题汇总

知识整理 1.electron进程间通讯 快速通道 electron进程间通讯 2.关于electron-vue里的app.asar 快速通道 关于electron-vue里的app.asar 3.获取版本号等信息 remote.app.getVersion(); //加载应用程序的版本号。 如果应用程序的 package. json 文件中找不到版本号, 则返回…

ROS(快速初步入门)

目录 一、节点与节点管理器 二、通信方式 三、参数 四、文件系统 五、ROS命令行工具 六、创建工作空间与功能包 1)工作空间 2)创建功能包 七、发布者Publisher的代码实现 八、订阅者Subscriber的编程实现 九、自定义话题并使用 十、Client客户…

leetcode-62-不同路径

题解: 1、设dp[i][j]代表到达(i,j)点最多的路径;题目要求机器人每次只能向右或向下走一步,所以到达(i,j)点的最多路径为到达(i-1,j)的最多路径与到达(i,j-1)的最多路径之和。即dp[i][j]dp[i-1][j]dp[i][j-1]。 2、初始化一个M*N的矩阵dp,将…

【问题解决】pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

今天配置完poetry环境变量之后pnpm不能用了 具体报错 pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1pnpm run dev~~~~ Ca…

【设计模式】如何用C++实现依赖倒置

【设计模式】如何用C实现依赖倒置 一、什么是依赖倒置? 依赖倒置原则(Dependency Inversion Principle,DIP)是SOLID面向对象设计原则中的一项。它的核心思想是: 高层模块不应该依赖于低层模块,两者都应该…

达梦数据迁移工具DTS使用实践

1、环境描述 2、DTS概述 1.支持视图、存储过程/函数、包、类、同义词、触发器等对象迁移; 2.支持数据类型的自动映射,编码转换; 3.支持根据条件自定义迁移部分数据; 4.向导式迁移步骤,上手简单; 5.支持 we…

瑞格智慧心理服务平台 NPreenSMSList.asmx sql注入漏洞复现

0x01 产品描述: ‌ 瑞格智慧心理服务平台‌是一个集心理测评、心理咨询、心理危机干预、心理放松训练等功能于一体的综合性心理健康服务平台。该平台由北京瑞格心灵科技有限公司开发,旨在为用户提供全方位的心理健康服务。0x02 漏洞描述:…

【经典论文阅读11】ESMM模型——基于贝叶斯公式的CVR预估

传统的CVR模型(也就是直接对conversion rate建模的模型)在实际应用中面临两个问题(样本选择偏差与数据稀疏性问题)。为了解决这两个问题,本文提出ESMM模型。该模型巧妙地利用用户行为序列去建模这个问题,从…

OpenCV基础01

目录 一、环境安装 二、显示窗口 三、创建图片 四、图片保存 五、图像裁剪 六、调整图片大小 七、图像绘制 1、绘制圆形 2、绘制矩形 3、绘制文本 4、绘制直线 5、中文文本 八、控制鼠标 九、鼠标事件 十、视频处理 OpenCV作为C和C语言的源代码文件,…

git:将多个提交合并为一个

如何将第一至第五次提交合并为一个? 1. 使用 git log -n 命令查看spring boot admin的commit-id,本例n6,命令如下: PS E:\liguogang\spring-cloud> git log -62. 使用 git reset --soft commit-id 命令将前五次提交重置到工作…

Leetcode 二叉树中的最大路径和

算法思想 这道题要求在一棵二叉树中找到路径和最大的路径。路径可以从树中任意一个节点开始,到任意一个节点结束,但路径上的节点必须是连续的。 算法使用递归的方式来遍历树中的每个节点,并在遍历过程中计算包含当前节点的最大路径和。具体…