2017-05-17 205 views
0

假设这是一个简单的无状态服务器。TCP先让服务器先关闭连接让客户端先关闭连接

  1. 如果服务器关闭连接处理请求和写回的响应后,必须有CLOSE_WAIT状态连接过多。

  2. 如果让客户端先关闭连接,那么如果客户端没有关闭它们,服务器端可能会有太多活动连接。

那么如何处理这种情况呢?我应该使用1或2还是其他?

回答

0

如果服务器在处理请求并回写响应后关闭连接,则在CLOSE_WAIT状态中必须有太多的连接。

不,但会有很多TIME_WAIT状态。

如果让客户端首先关闭连接,如果客户端没有关闭它们,服务器端可能会有太多活动连接。

所以服务器应该使用读取超时。

一般来说,服务器最好是接收第一个关闭的服务器。这种方式TIME_WAIT状态堆积在客户端,而不是服务器,客户端不会有很多连接,所以它不会有任何问题。