If I create a socket bound to INADDR_ANY, then bind to a multicast address (say 220.127.116.11) on one or more interfaces (say 192.168.1.1 and 192.168.2.1), that socket will receive packets sent to 18.104.22.168 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 22.214.171.124) on 192.168.1.1 and 192.168.2.1, that socket will NOT receive packets sent to 126.96.36.199 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?