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

目录
相关文章
|
3月前
|
安全 Java Go
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
74 0
|
1月前
|
网络协议 算法 网络性能优化
TCP和UDP详解2
TCP和UDP详解
33 0
|
2月前
|
网络协议 算法 安全
TCP/UDP 数据传输的链路解析
TCP/UDP 数据传输的链路解析
53 0
|
2月前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
2月前
|
网络协议 网络性能优化
认识TCP和UDP的区别
重排机制:由于UDP数据包可能因网络原因而发生乱序,因此在应用层需要对接收到的数据包进行排序。
37 4
|
1天前
|
网络协议 程序员 API
LabVIEWCompactRIO 开发指南19 原始以太网(TCP/UDP)
LabVIEWCompactRIO 开发指南19 原始以太网(TCP/UDP)
|
3天前
|
XML 网络协议 算法
UDP/TCP协议特点
UDP/TCP协议特点
21 0
|
4天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
14 0
|
4天前
|
域名解析 网络协议 关系型数据库
TCP和UDP的区别是什么
TCP和UDP的区别是什么
13 0