Qt udp套接字,什么会触发套接字的readyRead信号?

Qt udp socket, what will trigger the socket's readyRead signal?

本文关键字:套接字 readyRead 信号 udp 什么 Qt      更新时间:2023-10-16

如果我像这样绑定我的udp套接字:

connectState = socket->bind(QHostAddress::Any, 14550);

那么我的理解是,如果 LAN 上使用 UDP 写出某些内容,则端口为 14550 的所有设备都将触发 readyRead 信号。

我说的对吗?如果某些设备在 prot 12345 上,那么它不会触发 readyRead 信号吗?是否可以仅绑定到特定的地址范围?

我不确定,但我感觉您将 AnyAddress 与广播混为一谈

那么我的理解是我的LAN上的所有设备都有端口14550 将触发 readyRead 信号,如果它使用 UDP。

不。当它在可以到达的服务器的任何地址上发送 UDP 数据包时,它会触发 readyRead。UDP 包必须发送到您的计算机。在这种情况下::Any意味着任何接口,甚至是虚拟 127.0.0.1。

UDP 包必须发送到所选端口。

是否可以仅绑定到特定的地址范围?

据我所知没有。在我所知道的所有操作系统中::Any转换为 0.0.0.0,这是一个特殊的地址,告诉操作系统"侦听任何可用的接口"如果你想排除一些,你必须以某种方式确定你感兴趣的 IP 列表并构建一个 QUdpSocket 的集合来收听。