如何确保接收应用程序在客户端 - 服务器通信中启动并运行?

时间:2015-03-01 10:40:19

标签: network-programming client-server

我目前正致力于通过套接字网络连接将文件传输到另一台机器的客户端 - 服务器解决方案。因为我打算在接收端做一些评估,我假设我也需要在那里运行某种客户端或服务器程序。

我对整个客户端 - 服务器的事情相当新,因此有以下基本问题:

我目前的理解是客户端和服务器将是在两台不同机器上运行的两个独立程序。通常如何确保通信伙伴(即,当从服务器发送时从客户端和客户端发送时的服务器)实际启动并运行在我要将文件传输到的远程机器上?

到目前为止,我一直在研究以下选项:

  1. 在发送程序中包含对遥控器的ssh访问 机器并启动接收程序的实例 远程机器。

  2. 让接收程序作为恶意进程在远程上运行 机。这意味着接收程序应该始终 在远程机器上运行。但是,我怎么知道是否 由于某种原因,该过程已经崩溃或已经关闭 没有选项1),如何从中恢复?

  3. 所以,我的主要问题是:是否还有其他值得考虑的选项?

    感谢您对此的看法!

1 个答案:

答案 0 :(得分:1)

根据客户端服务器消息的设置方式,ping(我不是指ICMP ping,但基本思路)消息,服务器可以响应“我还活着”的消息会有所帮助。这样至少你知道服务器端正在运行。

在使用这些监控系统的生产环境中,这种情况并不少见。其他值得考虑的选项 - xinet.d脚本 - 在传入连接上启动的东西。

可能有新的方法来实现自动启动/重启或开始与systemd / systemctl连接,但我不熟悉它们给你的具体细节。

有点粗糙,但有效的方法可能是一个cron作业,定期运行脚本来强制保持服务。