我在 Windows 7 中运行了两个 stunnel 实例,配置为侦听同一端口,并且似乎它们都成功地侦听了同一端口(仅使用 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 告诉我端口很忙。)所以....
- 为什么/这是如何工作的?这种行为在某些情况下有用吗?
- 如果另一个应用程序要捕获传入的请求,我不希望实例成功运行...如何使端口独占?