心跳协议

时间:2018-03-28 22:27:25

标签: java sockets stream

我有一个客户端/服务器FTP应用程序,我想实现心跳协议来检查连接。在我看来,如果我使用我的客户端和服务器用来发送和接收文件的相同输出和输入流,我将遇到一些问题。我不认为我不能打开多个流(除非它们是不同的类型,如DataOutputStream和ObjectOutputStream)。有没有解决这个特定问题的方法?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你想要做的事情,在两个地方收到相同的流,是不可能的。最接近的是反向代理流,因此您运行反向代理,客户端连接到代理服务(在服务器上运行),代理连接到原始服务。

以这种方式,代理应该能够监控连接。

另一种选择,如果你可以运行一个管理服务'在服务器的FTP应用程序上。因此,修改ftp服务器以打开您连接的另一个端口,以获取管理员信息,例如连接健康状况。

第一个解决方案可能是更多的工作,但如果您无法访问ftp应用程序,则可能。源代码。反之亦然。