首先是广播地址的问题。
QHostAddress::Broadcast 相当于 255.255.255.255 ,可是这个在Linux下广播不了数据,Windows下可以。
查了资料,255.255.255.255 是受限制的广播地址,出不了路由器,用命令 ping 不通。
推荐使用子网广播地址 192.168.1.255 就可以了。
在Windows下用QHostAddress::Broadcast广播数据,能收到三份同样的数据报文,不知该怎么解释。
使用 192.168.1.255 收到一份广播数据。
udpSocket->bind(QHostAddress("192.168.1.127"), 45454);
这样在 Linux 下收不到 192.168.1.127 发来的数据,Window 下可以。
使用
udpSocket->bind(45454);
这样绑定都可收到数据