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