【发布时间】:2011-01-26 14:15:08
【问题描述】:
我一直认为,如果不实现心跳,就无法知道 TCP 连接的一侧是否意外死亡。如果进程只是在一侧被杀死并且没有正常退出,则套接字无法发送 FIN 或让另一侧知道它已关闭。
(请参阅此处的一些 cmets,例如 http://www.perlmonks.org/?node_id=566568)
但是我连接的一个股票订单服务器有一个新的“取消所有订单断开连接功能”,如果客户端断开连接,它会取消实时订单。即使我最终终止进程,它也可以工作,而且我的应用程序绝对没有心跳。
那么它如何能够检测到我何时终止了该进程?我的应用在 Windows Server 2003 上运行,订单服务器在 Suse Linux Enterprise Server 10 上。Windows 是否检测到与套接字关联的进程不再活动并发送 FIN?
【问题讨论】: