Qt 使用UDP广播来寻找当前网段内在线设备

简介: 这里简单说明一下,UDP通信分为三种,分别为单播,组播和广播。这三种方式都需要在Qt中添加网络模块并包含头文件
QT       += network
#include <QUdpSocket>

单播就是发送消息到指定的IP+端口

组播就是发送消息的指定的IP组+端口

广播就是发送整个网络。

具体代码网上应该有很多了,这里就的部分代码分享,其他可以自行百度。

 

其实代码还是很简单的,第一步,建立UDPsocket

udpServer = new QUdpSocket(this);     //接收数据
    udpServer->bind(QUdpSocket::ShareAddress);   //第一个参数为端口号,第二个参数为表示允许其他地址链接广播
    connect(udpServer,&QUdpSocket::readyRead,this,&MainWindow::slot_Read_Udpsocket_Date);

剩下的就是发送广播数据

int xx = udpServer->writeDatagram((char*)searchDev,4,QHostAddress::Broadcast,1901);  

这样就可以在接收函数中接收数据了。

今天遇到的问题就是硬件设备无法检测是否收到数据,智能通过在PC端通过抓包软件来看是否将数据广播出去image.png

从这里看,我的数据是发送完毕了,但是没有收到数据的返回,排除了一下午是不是这两行代码写的有问题,一直得不到设备返回的数据。也不能确定设备是都收到数据。


经过排查,TM是文档中给的端口号有问题,厂家提供的软件的端口号和文档中提供的不是一个随后吧端口改成厂家提供软件中的端口解决问题。image.png

所以,哈哈哈,文档还是要及时更新好,不然就是误人子弟啊,害我白忙乎了好几天。

以上就是今天的内容了


image.pngimage.png

目录
相关文章
|
11月前
|
编解码 图形学
29 QT - 绘图设备
29 QT - 绘图设备
36 0
|
3月前
|
网络协议
Qt中的网络编程(Tcp和Udp)运用详解以及简单示范案例
Tcp和Udp是我们学习网络编程中经常接触到的两个通讯协议,在Qt也被Qt封装成了自己的库供我们调用,对于需要进行网络交互的项目中无疑是很重要的,希望这篇文章可以帮助到大家。 是关于Qt中TCP和UDP的基本使用和特点:
348 7
|
3月前
|
数据可视化 开发者 C++
Qt(C++)使用QChart静态显示3个设备的温度变化曲线
QChart模块是Qt Charts库的基础,提供了用于创建和显示各种类型图表的类和接口。Qt Charts库是一个功能丰富、易于使用的数据可视化工具库,可以帮助开发者在应用程序中添加漂亮而又交互性强的图表。
48 1
Qt(C++)使用QChart静态显示3个设备的温度变化曲线
|
3月前
|
存储 JSON 数据可视化
Qt(C++)使用QChart动态显示3个设备的温度变化曲线
Qt的QChart是一个用于绘制图表和可视化数据的类。提供了一个灵活的、可扩展的、跨平台的图表绘制解决方案,可以用于各种应用程序,如数据分析、科学计算、金融交易等。
212 1
|
3月前
基于QT实现的QQ聊天简易版(UDP通信版)
源码已经给小伙伴们整理好了,微信搜索 嵌入式工程之家 关注公众号回复 QQ 即可获得源码和详细操作指示哦~
|
5月前
|
安全 Java Go
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
144 0
|
12月前
|
编解码 图形学
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
|
缓存 网络协议 C++
|
网络协议
Qt网络编程之搭建Udp通信【单播、组播、广播】
Qt网络编程之搭建Udp通信【单播、组播、广播】
734 0