如何从客户端检测到jsch会话已被服务器断开连接?检测jsch断开连接
1
A
回答
1
您是指会话对象上的isConnected()函数以外的其他位置?
1
如果使用setPortForwardingL()设置portforwarding,则可以使用类似这样的函数来确定隧道(和连接)是否仍然存在。 (示例隧道回声服务)。
public boolean performCheck() throws Exception {
Socket socket;
try {
socket = new Socket("localhost", 7);
if (socket.isConnected()) {
socket.close();
return true;
}
} catch (UnknownHostException e) {
// nothing special
} catch (IOException e) {
// nothing special
}
return false;
}
+0
似乎只有在此连接上发生某些操作时,才会更新JSch中连接的状态。因此,所描述的方式似乎是唯一可以确定连接是否仍在运行的方式。 – KwaXi 2013-04-11 10:06:16
1
Session.isConnected()
对我的作品,但必须确定你打电话
Session.setServerAliveInterval(int)
Session.connect()
是之前,因为它返回true,即使我从互联网上断开,而隧道远程电脑。 – arpad 2011-03-12 22:09:52
是的。这是真的。 @ rp-你找到了一种行之有效的方法吗? – Alexis 2013-03-18 05:02:05
不幸的不是。 – arpad 2013-08-12 08:02:02