【问题标题】:Heartbeat protocol心跳协议
【发布时间】:2018-03-28 22:27:25
【问题描述】:

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

【问题讨论】:

  • 你试图从哪里监控连接,客户端还是服务器?
  • 来自服务器。

标签: java sockets stream


【解决方案1】:

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

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

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

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

【讨论】:

  • 我明白了。所以本质上是在不同的端口上打开另一个 ServerSocket 并将所有的健康信息报告给那个?
  • 是的,我就是这个意思。
猜你喜欢
  • 2021-08-21
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多