TCP建立连接后,client端主动发出关闭连接请求,那Server端接收到后也会自行关闭server端的连接,但是如果client端由于异常情况断开了连接呢?server如何感知到并关闭server端的连接?
Server端是无法感知的,Server端的连接会一直存在,不过TCP好像可以设置默认的心跳包。自己实现socket连接时可以自己定义像Server端发送心跳消息告诉Server自己还在。
一个与该问题相关的攻击方法:client端无限制的建立连接并非正常关闭,导致Server端有太多的半开放的连接不能即使关闭,造成Server崩溃。