If I create a socket bound to INADDR_ANY, then bind to a multicast address (say 188.8.131.52) on one or more interfaces (say 192.168.1.1 and 192.168.2.1), that socket will receive packets sent to 184.108.40.206 that are received on either 192.168.1.1 or 192.168.2.1 as expected.
However, if I create a socket bound to a specific address (say 192.168.1.1), then bind to multicast address 220.127.116.11) on 192.168.1.1 and 192.168.2.1, that socket will NOT receive packets sent to 18.104.22.168 that are received on 192.168.1.1.
This happens on Linux 2.6 and Solaris 10 but not Windows XP. Under XP, multicast works whether I bind the socket to INADDR_ANY or a specific address.
Anyone come across this before? Any idea how to fix it?