JSch / Java - 检测断开连接的服务器的正确方法

时间:2015-02-10 07:52:39

标签: java session jsch disconnect

我正在使用Jsch库在服务器上使用SSH执行某些命令。我的应用应保持与服务器的连接,直到用户手动断开连接。因此,我需要一些方法来检测由于网络问题导致的断开连接(例如),以允许我的应用自动重新连接。

#isConnected()方法。我可以用它来执行检查吗?我的意思是,如果这种方法可以检测到由网络问题引起的断开连接,或者只是在我调用方法#disconnect()之后才改变状态?

[编辑] 似乎只有在此连接上发生某些操作时,才会更新JSch中的连接状态。所以我无法通过这种方式处理网络错误。我可以使用Socket创建新线程来监控我的主机和端口(例如),但我不喜欢这种解决方法。当在背景中应用时会导致巨大的电池耗尽。这是不可接受的。

我还需要通知用户服务器关闭连接并让他重试。

1 个答案:

答案 0 :(得分:3)

我已经走了source,似乎你可以这样使用它,是的。我会编写一个提供程序类,它为您的应用程序提供Session,如果连接丢失,它会在延迟后尝试重新建立它。