我正在编写一个简单的HTTP服务器并了解TIME_WAIT。在处理请求后,如果没有所有套接字卡在TIME_WAIT中,那么繁重环境中的真实Web服务器如何处理来自数千个用户的请求? (不要问保持活着 - 这对单个客户有用,但对于成千上万的不同客户来说却没有。)
我已经读过你尝试让客户端先关闭,这样所有的TIME_WAIT都会在所有客户端之间传播,而不是集中在服务器上。
这是怎么做到的?在某些时候,服务器必须调用close / closesocket。
答案 0 :(得分:12)
启动主动关闭的对等方是进入TIME_WAIT的对等方。因此,只要客户端关闭连接,客户端就会获得TIME_WAIT而不是服务器。我更详细地了解了这一切in this blog posting。