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