首页 > 解决方案 > 可以关闭两个本地进程之间的 TCP 连接而不涉及任何一个进程吗?

问题描述

我有两个用两种不同编程语言编写的进程,它们通过本地 TCP 连接交换信息。一个进程正在启动另一个进程,但它们的生命周期必须共享,即如果一个进程死了,另一个进程也会死,反之亦然。

我想使用 TCP 连接作为检测对方是否崩溃的机制,但我不确定它是否安全。我想知道是否存在连接可能由于进程崩溃或退出之一以外的其他原因而关闭的情况。

编辑

标签: linuxtcp

解决方案


如果为您的进程提供服务的计算机距离很远,那么沿途的网络问题当然可能会导致问题,否则关闭连接并非易事。诸如“tcpkill”之类的工具可以关闭在本地计算机上发起或终止的连接,如果您穿过防火墙,那么防火墙管理员当然可能会关闭通过的连接。

我认为您的方案会运作良好;如果某些原因导致网络连接中断,那么您的两个进程都将终止,因此最坏的情况是停机时间过长——我不希望通过正常网络进行连接。


tcpkill:https ://linux.die.net/man/8/tcpkill


推荐阅读