如果客户端通过正常的 tcp 连接连接到服务器,然后客户端的连接中断,服务器将获得(假设活动模式){tcp_closed,Socket}。但是在某些情况下,服务器不会知道客户端已断开连接,例如电源故障或崩溃等(我相信,我可能是错的)。在这些情况下,客户端已消失,但服务器仍认为它已连接。如果服务器在这些情况下尝试向客户端发送消息,它会假设客户端收到消息还是 tcp 堆栈会在低级别对其进行排序,然后服务器会返回某种错误?
我知道这是一个简单的问题,但我自己测试它时遇到了麻烦,因为我无法让客户像我需要的那样发生灾难性的失败(即使 kill -9 也没有这样做)。有人对这个有经验么?