2016-11-15 11 views
0

Я новичок в API ExpectIt. Я могу выполнить команду и получить ответ, но я не могу прекратить выполнение команды, предоставив escape-ключи (ctrl + shift + 6).Как отправить escape ключи (ctrl + shift + 6) в ExpectIt API

Как я могу отправить управляющие ключи на терминал, чтобы остановить выполнение команды через API ExpectIt?

пример

R1#ping ip 192.168.1.1 
    Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds: 
.... <div style="color:red"><b>I pressed escapse character here</b></div> 
Success rate is 0 percent (0/4) 
R1# 

ответ

0

Я остановил бегущую команду на маршрутизаторе, посылая на клавишах управления два раза, как следующее.

char ctrlKey = (char) Integer.parseInt("1E", 16); 
expect.send(ctrlKey); 
Thread.sleep(1000); 
expect.send(ctrlKey); 

, и я взял источник ожидания, изменил следующий класс.

ExpectImpl.java 
//private final OutputStream output; 
private final Writer output; // use Writer instead of using OutputStream 
+0

Вы пробовали ожидать метод sendBytes? Он должен работать одинаково: exepect.sendBytes (новый байт [] {30}) (30 десятичных = 1E hex). –

+0

Да, я пробовал с OutputStream. Это не работа. – Visva

+0

Он также должен работать через выходной поток. Нет необходимости использовать Writer. Можете ли вы показать точный код, который не работает? Я бы хотел изучить причину и внести изменения в ExpectIt, если они есть. –