Jsch:有没有办法发送控制角色

时间:2012-04-16 13:50:24

标签: java ssh jsch

我正在使用Jsch连接sshd服务器,我是这方面的新手。我成功发送了非控制字符,例如a,b ......等等。但是,我需要发送“Esc”键命令(Control Character)来执行特定任务。根据{{​​3}},我尝试了几种方法(通过传递“27”,“0033”,“0x1b”和“^ [”)但是没有用。 我找到了link来使用sshj。有没有办法使用Jsch发送控制字符?

感谢M.F.H

2 个答案:

答案 0 :(得分:2)

关注代码段怎么样?

byte[] esc = { (byte)0x1b }; 
out.write(esc);
out.flush();

正在使用JSch的JCTerm遵循definitions

byte[] ENTER = {(byte)0x0d};
byte[] UP = {(byte)0x1b, (byte)0x4f, (byte)0x41};
byte[] DOWN = {(byte)0x1b, (byte)0x4f, (byte)0x42};
byte[] RIGHT = {(byte)0x1b, (byte)0x4f, (byte)0x43};
byte[] LEFT = {(byte)0x1b, (byte)0x4f, (byte)0x44};
....

答案 1 :(得分:1)

感谢。我已经把这个问题想出来了。我使用JSCH将字符发送到VT100终端以执行特定任务。在代码中,所有输入都转换为字节数组,但ASCII控制字符不能作为字节数组发送到VT100终端。根据{{​​3}},我必须将控制字符作为ASCII码(INT)发送。例如,如果VT100终端需要ESC命令则必须在SSH会话输入流中写入27(INT)。 ESC的ASCII码是27.(之前,我发送了27作为字符串并转换为字节数组。)