【发布时间】:2017-02-03 09:52:20
【问题描述】:
我在服务器和客户端之间有一个 TCP 连接。客户端和服务器上没有设置 SO_KEEPALIVE 选项。如果客户端宕机,服务器如何知道客户端是否宕机,如果是,连接是否会终止?
【问题讨论】:
-
如果您没有 keepalive,您仍然可以使用读取超时,但最终发送时仍会出错。
我在服务器和客户端之间有一个 TCP 连接。客户端和服务器上没有设置 SO_KEEPALIVE 选项。如果客户端宕机,服务器如何知道客户端是否宕机,如果是,连接是否会终止?
【问题讨论】:
我假设您的意思是如果客户端突然断开连接并且连接没有正常关闭? 为什么 SO_KEEPALIVE 不是一个选项,因为这可以解决您的问题? 如果没有,您需要实现某种保持活动机制,例如在计时器上发送“你好,我还活着”数据包。
【讨论】: