我在Windows 7中運行兩個stunnel實例,配置爲偵聽同一個端口,並且它們似乎都在同一個端口上成功偵聽(使用socket()/ bind()/ listen())。這兩種情況下出現的所有調用成功,他們在netstat的出現:兩個進程如何在Windows 7中監聽同一個端口?
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告訴我這個端口很忙。)所以......
- 爲什麼/它是如何工作的?這種行爲在某些情況下有用嗎?
- 我不希望一個實例成功運行,如果另一個應用程序要捕獲傳入的請求......我如何使端口獨佔?
謝謝,我認爲該標誌與同名的UNIX標誌相同MSDN很有啓發性:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms740621(v=vs.85).aspx – Olson