2016-11-03 69 views
2

當偵聽套接字的服務器接受連接時會發生什麼?Socket接受後會發生什麼?

我的教授幻燈片包括這樣的解釋

如果一切順利的話,服務器接受連接。接受後,服務器將獲得一個新的套接字綁定到不同的端口。它需要一個新的套接字(因此是一個不同的端口號),以便它可以在服務連接的客戶端時繼續監聽原始套接字的連接請求。

但我不覺得這是正確的。因爲如果在高負載的服務器上端口將很容易耗盡。

那到底發生了什麼?以及實際上多線程如何與響應的套接字一起工作?

回答

1

你是對的。你的教授的幻燈片從頭到尾都是錯誤的錯誤。新套接字使用與偵聽套接字相同的本地端口。

我會補充一點,我真的覺得這個事件相當令人震驚。請教授解釋以下netstat輸出:

TCP 0.0.0.0:389   0.0.0.0:0    LISTENING  2932 
TCP 127.0.0.1:389   127.0.0.1:57863  ESTABLISHED  2932 
+0

你感到震驚,我覺得我浪費了我5年的生命! 謝謝您的主席對您重複提問的回答和解釋。 –

+0

@ShadyAtef請參閱編輯。請教授解釋一下。 – EJP