Last year, I finally migrated my development environment from Win10x64 to Win11x64. The old Win10 computer has been powered off, except for the rare times I needed to look for an old file on it. The software I work on was running fine when I moved from W10 to W11. Yesterday, I powered it up to use it as a second host in some testing and it wanted to apply a bunch of updates.
Once it was finished and had rebooted a couple times, I tried to start my software and, to my surprise, all attempts to bind() a TCP socket to a local (IPv4) address/port are failing with WSAEACCES. Since these programs have been working fine for, quite literally, YEARS on this very machine, I am at a loss as to how I should proceed in correcting the problem.
I have tried turning off all anti-virus and firewall type security, but the error still occurs. I have tried using only an internal LOOPBACK address (on the Microsoft KM-TEST loopback adapter) and also using an address on the physical adapter, with the same results.
This feels very much like an overzealous security update preventing anything from binding a TCP socket to an address/port. Interestingly, the two places where the code binds a UDP address, there is no error, so this is TCP-specific.
Thanks to anyone who reads this far! Even more thanks to anyone who can offer suggestions as to how I can correct or at least better diagnose what has changed that has broken my old code that once worked perfectly (and is currently still working perfectly on Windows 11, as well as on Windows 10 and Windows 7 at several customer sites!)
Oh, all our code is plain, native C (not C++, MFC, .NET or anything like that) and has not been changed (on the Win 10 machine) since it had last been run without error back in Dec 2023.