We currently have a a desktop application that can use two IP addresses but only binds to one IP. We are having a problem on Windows 7 whereby a UDP socket bound to one address on a particular port receives packets from two sources. On Windows XP this worked without any problem. Two server sources can broadcast packets on these two ranges but the workstation must only receive packets on one of these ranges.
eg. We have two IP addresses set on each workstation ; 172.16.11.2, 172.16.12.2 on one network card.
The servers broadcast data on 172.16.11.255 and 172.16.12.255. Depending on the startup configuration the workstation either binds to 172.16.11.2 or 172.16.12.2. We notice that packets are received from both servers which causes a clash. Its seems as if all packets are sent to the UDP socket bound to one address regardless of the IP range. We explicitly set the IP address when we create the socket. This seems to happen when using a CAsyncSocket (In MFC) or a native Winsock library socket.
Any help will be much appreciated!