I have a DSP connected to a Windows 7 laptop by a dedicated Ethernet connection (no routers or anything else in the way).

The laptop has all firewalls disabled (I’ve even tried stopping the Windows firewall service and DHCP).

The DSP is sending well-formed BOOTP broadcast packets every three seconds to port 67. Wireshark running on the laptop sees
these BOOTP packets coming in and shows they are correct.

I have a C++ program running on the laptop with a socket successfully bound to port 67. I can see this using CurrPorts.
Nothing else is shown as accessing port 67.

The program never sees any packets coming in.

If I run a program in the DSP that sends ordinary (non-broadcast) UDP packets to port 67, Wireshark sees them coming in and
reports that they are corrupt BOOTP packets, but now, the same program on the laptop gets them correctly.

Someone suggested that SO_BROADCAST needs to be set as a socket option in the laptop program (even though the Microsoft
documentation says this is for transmission only). I have tried this and, as expected, it has no effect; I still cannot read any
broadcast packets.

Any idea what’s going on here and why I cannot read any broadcast packets?