2016-11-03 66 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