我正在使用Jsch库在服务器上使用SSH执行某些命令。我的应用应保持与服务器的连接,直到用户手动断开连接。因此,我需要一些方法来检测由于网络问题导致的断开连接(例如),以允许我的应用自动重新连接。
有#isConnected()
方法。我可以用它来执行检查吗?我的意思是,如果这种方法可以检测到由网络问题引起的断开连接,或者只是在我调用方法#disconnect()
之后才改变状态?
[编辑] 似乎只有在此连接上发生某些操作时,才会更新JSch中的连接状态。所以我无法通过这种方式处理网络错误。我可以使用Socket创建新线程来监控我的主机和端口(例如),但我不喜欢这种解决方法。当在背景中应用时会导致巨大的电池耗尽。这是不可接受的。
我还需要通知用户服务器关闭连接并让他重试。