2

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

谢谢MFH

4

2 回答 2

2

下面的片段怎么样?

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

使用 JSch 的 JCTerm 有以下定义

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};
....
于 2012-04-17T00:43:18.970 回答
1

谢谢。我以不同的方式解决了这个问题。我正在使用 JSCH 向 VT100 终端发送字符以执行特定任务。在代码中,所有输入都转换为字节数组,但 ASCII 控制字符不能作为字节数组发送到 VT100 终端。根据post,我必须将控制字符作为 ASCII 码(INT)发送。例如,如果 VT100 终端需要 ESC 命令,则 SSH Session 输入流中必须写入 27(INT)。ESC 的 ASCII 码是 27。(之前,我将 27 作为字符串发送并转换为字节数组。)

于 2012-04-18T20:59:45.617 回答