Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[SOLVED]QUdpSocket & broadcast & Windows7



  • I am sending a request (broadcast: 255.255.255.255) by UDP to determine who is where in the network. The program works fine under WinXP, Ubuntu but under Windows7 sent to any address other than broadcast (255.255.255.255). Other programs written in C # and VB work.



  • I then found out that is not sent because the IP is absent. Accordingly, the 255.255.255.255 does not send the same reason. Strange did not UDP should still send?


  • Moderators

    I doubt that 255.255.255.255 is the broadcast address: Those tend to start with the network address.



  • The broadcast address is calculated of the network interface address and the netmask. In case your address is 192.168.18.99 and a netmask of 255.255.255.0 (i.e. a /24 net), your broadcast address is 192.168.18.255.



  • Actually, I use the following:
    udpSocket->writeDatagram(message,QHostAddress::Broadcast, 161);



  • When I use the address like 192.168.18.255, the network device does not respond.
    Respond only for 255.255.255.255 or its own address.



  • The actual network address depends on your IP subnet and the netmask. The web has uncountable IP calculators that help you to find out yours.



  • I do not quite understand.
    But when I wrote "I use the address like 192.168.18.255" I mean xx.xx.xx.255, where xx.xx.xx is my.



  • And you do use a /24 = class C = netmask 255.255.255.0 network?



  • Yes, that's right



  • I tried to compile with MinGW and VC, result is same .



  • Maybe you can post some sample code, so that someone with a Win7 box can try it.

    Also make sure that neither a firewall nor a virus or malware scanner is in the way. Additionally you might need to have higher privilges for sending broadcasts, but I'm not sure about this, I might be wrong.

    According to "QTBUG-13516":https://bugreports.qt.nokia.com//browse/QTBUG-13516 there has been an issue with UDP broadcasts on Vista.



  • Well, you can try Broadcasting sender and receiver example from Qt. If receiver and sender on one machine they work but wireshark didnt see the transmit and other computers on network too. If receiver and sender located on different machines nothing happening.



  • I tried using Boost.asio, but the result is same. I can not understand what is the problem. Firewall and antivirus disabled. It's not a bug of QUdpSocket, can somebody tell where to look next ?



  • I think I understand what the problem was. On computers that I use some older programs are installed and they have changed during installation
    several system files. By default, on clean Windows everything is working fine.


Log in to reply