0
如果兩個進程都使用共享本地端口連接到服務器服務器的同一個遠程端口,那麼當服務器嘗試響應時,會發生什麼?還是有一種機制來防止這種情況發生?當兩個進程綁定到一個端口並與同一臺服務器通信時會發生什麼?
如果兩個進程都使用共享本地端口連接到服務器服務器的同一個遠程端口,那麼當服務器嘗試響應時,會發生什麼?還是有一種機制來防止這種情況發生?當兩個進程綁定到一個端口並與同一臺服務器通信時會發生什麼?
我假設你在這裏問TCP。當兩個進程連接到單個遠程端口時,他們將使用不同的本地端口。這就是服務器如何區分連接。一個連接有四個部分來唯一標識它:源端口,源IP地址,目標端口和目標IP地址。
對不起,我一定沒有寫得很清楚。我問當本地和遠程端點都一樣時會發生什麼? – jnm2
使用相同的本地和遠程端口不能有多個TCP連接。例如,在POSIX(Linux)中,在嘗試使用相同本地端口的第二個進程中,bind()調用將失敗,並顯示errno EADDRINUSE。請注意,兩個進程共享一個套接字可能是可能的,但是它們的讀/寫將被交織,並且服務器會認爲只有一個客戶端。 – Heath