I have two processes that are both listening to UDP packets and can run on the same PC. One process binds a socket to one NIC address with port 18246. The other process has two Socket objects, one for sending on port 18246 and one for listening
on port 18246. Both of these sockets are created, have the SO_REUSEADDR socket option set. Bind is called for a single IP Endpoint for a common local NIC address, but a different one than used by the above app.
Under Windows XP and server 2003, both processes can bind regardless of order of startup.
Under Windows 7, if the process with only one socket starts first, the second process fails with WSAEACCES 10013 error with the second socket bind.
I wrote a sample C# app with the following method that fails when running under Windows 7 x86 and x64. The above failure occurs when the sockets are in separate processes, but a single process using the same socket interaction also fails. The
below method is called with two IPV4 addresses that are assigned to local Network adapters on the PC.