【发布时间】:2012-04-19 04:59:45
【问题描述】:
我正在使用 Jsch 连接 sshd 服务器,我是这方面的新手。我成功发送了非控制字符,例如 a、b ...等等。但是,我需要发送“Esc”键命令(控制字符)来执行特定任务。根据link,我尝试了几种方法(通过“27”、“0033”、“0x1b”和“^[”)但没有奏效。 我找到了一个link 来使用 sshj。有没有办法使用 Jsch 发送控制字符?
谢谢 M.F.H
【问题讨论】:
我正在使用 Jsch 连接 sshd 服务器,我是这方面的新手。我成功发送了非控制字符,例如 a、b ...等等。但是,我需要发送“Esc”键命令(控制字符)来执行特定任务。根据link,我尝试了几种方法(通过“27”、“0033”、“0x1b”和“^[”)但没有奏效。 我找到了一个link 来使用 sshj。有没有办法使用 Jsch 发送控制字符?
谢谢 M.F.H
【问题讨论】:
跟着sn-p怎么样?
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};
....
【讨论】:
谢谢。我以不同的方式解决了这个问题。我正在使用 JSCH 向 VT100 终端发送字符以执行特定任务。在代码中,所有输入都转换为字节数组,但 ASCII 控制字符不能作为字节数组发送到 VT100 终端。根据post,我必须将控制字符作为 ASCII 码 (INT) 发送。例如,如果 VT100 终端需要 ESC 命令,则 SSH Session 输入流中必须写入 27(INT)。 ESC 的 ASCII 码是 27。(之前,我将 27 作为字符串发送并转换为字节数组。)
【讨论】: