Как два процесса прослушивают один и тот же порт в Windows 7?
Я запускаю два экземпляра stunnel в Windows 7, настроенных на прослушивание одного и того же порта, и кажется, что они оба успешно прослушивают один и тот же порт (просто используя socket () / bind () / listen ()). Оба экземпляра успешно работают со всеми вызовами, и они отображаются в netstat:
C:\>netstat -ano | grep 8000
TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 5828
TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 5852
Первый, кто прослушает, получит все входящие запросы.
Это в значительной степени противоречит всем моим ожиданиям. (Я ожидал, что EADDRINUSE скажет мне, что порт занят.) Итак ...
Why/How does this work? Is this behavior useful in some context? I don't want an instance to successful run if another application is going to catch the incoming requests... How do I make the port exclusive?