java程序死了telnet还有用吗_java - 使用JSch在远程SSH会话上运行telnet命令后,执行挂起 - 堆栈内存溢出...

我一直在寻找一种解决方案,可以通过SSH连接,然后通过java通过Telnet连接到远程系统。 由于仅使用telnet连接,因此我可以在远程计算机上执行该特定命令。

我的代码是:-

public static void main(String[] arg) {

try {

System.out.println(telnetConnection(command, puttyUserName,

puttyPassword, puttyHostName));

} catch (Exception e) {

e.printStackTrace();

}

}

public static String telnetConnection(String command, String user, String password, String host)

throws JSchException, Exception {

JSch jsch = new JSch();

jsch.addIdentity(puttyPublicKey, puttyPassword);

Session session = jsch.getSession(user, host, 22);

session.setConfig("StrictHostKeyChecking", "no");

session.connect(500);//This timeout is not working as mentioned in the example. Program execution never stops.

Channel channel = session.openChannel("shell");

channel.connect(500);

DataInputStream dataIn = new DataInputStream(channel.getInputStream());

BufferedReader reader = new BufferedReader(new InputStreamReader(dataIn));

DataOutputStream dataOut = new DataOutputStream(channel.getOutputStream());

System.out.println("Starting telnet connection...");

dataOut.writeBytes("telnet localhost 4444\r\n"); after this no commands executes

dataOut.writeBytes(command + "\r\n");

dataOut.writeBytes("quit\r\n");

//使用退出我可以退出telnet会话,同时通过腻子手动完成退出操作

dataOut.writeBytes("exit\r\n"); // exit from shell

dataOut.flush();

String line = reader.readLine();

String result = line + "\n";

while (!(line = reader.readLine()).equals("Connection closed by foreign host"))

{

result += line + "\n";

System.out.println("heart beat" + result);

}

System.out.println("after while done");

dataIn.close();

dataOut.close();

channel.disconnect();

session.disconnect();

System.out.println("done");

return result;

}

}

输出//

心跳telnet本地主机4444

启动翻译员高级翻译

放弃

出口

[XYZ] $ telnet localhost 4444尝试xxx1 ...

已连接到localhost.localdomain(xxx1)。

转义字符为'^]'。

连接到INTERFACE LAYER心跳telnet本地主机4444

启动翻译员高级翻译

放弃

出口

[XYZ] $ telnet localhost 4444尝试xxx1 ...

已连接到localhost.localdomain(xxx1)。

转义字符为'^]'。

连接到界面层键入“ help”以获取命令列表

在此程序挂起并且不执行任何操作之后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值