C# UDP multicast listener picking up messages from incorrect multicast group
===

I am writing a service that sends multicast messages for communication between multiple instances of my service across a network.  I am setting up two listeners and sending the messages twice (239.1.1.1 on the primary NIC, 239.1.1.2 on the secondary NIC) Everything works fine, but occasionally the secondary listener, on the .2 multicast group will pick up messages sent to the .1 multicast group.  Any idea why this might be happening?

Here is how I am setting up my listeners:

            
                PrimaryLocalEP = new IPEndPoint(primaryNIC.Address, vnc.DefaultUtilityPort);
                PrimaryClient.ExclusiveAddressUse = false;
                PrimaryClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                PrimaryClient.Client.Bind(PrimaryLocalEP);
                PrimaryClient.JoinMulticastGroup(IPAddress.Parse("239.1.1.1"), primaryNIC.Address);
                PrimaryClient.MulticastLoopback = false;
                PrimaryRemoteEP = new IPEndPoint(IPAddress.Parse("239.1.1.1"), vnc.DefaultUtilityPort);

                ReadThread = new System.Threading.Thread(ReadConnection);
                ReadThread.IsBackground = true;
                ReadThread.Name = "UDPReadConnection";
                ReadThread.Start();
                  
                
                SecondaryLocalEP = new IPEndPoint(secondaryNIC.Address, vnc.DefaultUtilityPort);
                SecondaryClient.ExclusiveAddressUse = false;
                SecondaryClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                SecondaryClient.Client.Bind(SecondaryLocalEP);
                SecondaryClient.JoinMulticastGroup(IPAddress.Parse("239.1.1.2"), secondaryNIC.Address);
                SecondaryClient.MulticastLoopback = false;
                SecondaryRemoteEP = new IPEndPoint(IPAddress.Parse("239.1.1.2"), vnc.DefaultUtilityPort);

                ReadThreadSecondary = new System.Threading.Thread(ReadSecondaryConnection);
                ReadThreadSecondary.IsBackground = true;
                ReadThreadSecondary.Name = "UDPReadConnectionSecondary";
                ReadThreadSecondary.Start();
      