I'm experimenting with WIFI multicasting and broadcasting using Raspberry PIs as clients. If I subnet-broadcast or multicast over the WIFI then I lose a lot of packets. If I 'broadcast' to the specific IP of the receiver then I don't lose any packets. I have only the 1 receiver/client connected to my WIFI AP. I'm using QT framework's QUDPSocket::writeDatagram. So I just have to set the IP there and broadcast/subnet-broadcast/multicast is inherently selected. I have verified the appropriate MAC addresses are set using Wireshark and everything seems correct. I can't understand why I'm getting such a huge difference in performance. It's all UDP and there's only a single WIFI client. Any ideas please?
Edit in response to Sam Mason: QUDPSocket::writeDatagram takes an IP address. That IP address dictates whether you are unicasting, multicasting, broadcasting, or sub-net-broadcasting. I'm looping on this call to achieve a fixed tx speed of 1.5Mbps. (this is slow compared to what I should be able to push across my WIFI network so I'm not asking for a lot). My question really is why should unicast drop zero packets whilst all other methods drops lots of packets. I'm aware of the 'lowest common denominator' aspect of non-unicast but I only have 1 client connected, so...what does that mean?). I'm really after a nuts-and-bolts explanation of the real difference between UDP unicast and UDP-broadcast-with-single-client-connected.