2017-05-30 179 views
0

如何通過telnet發送多個鍵擊。在日常工作中,我連接到接受「ESC + 3」和「ESC + E」的服務器,如按鍵。現在我正在嘗試使用某些程序自動化該過程。爲此,我必須通過編程方式給出擊鍵。如果它是一個單行命令的意思,它並沒有那麼複雜。但應用程序也期望擊鍵。那麼,有沒有辦法解決這個問題。通過telnet發送鍵擊

+1

某些代碼可能會幫助理解你的意思。 –

+0

@FelixPalmen'write(fd,「hai」,4);'這裏「Hai」是發送給服務器的數據。但是,現在我想給「ESC + E」,而不是海。 – mrg

+0

所以你只需要知道如何在C字符串文字中表達ESC:'\ x1b' –

回答

2

ESC只是一個ASCII碼爲0x1b的正常(不可打印)字符。所以,如果你有一個開放的文件描述符fd爲您服務,發送ESC+E下面會做什麼:

write(fd, "\x1bE", 2); 
0

對於交互式ttys中,有一個名爲expect程序。我很久沒有使用它了,但是我能夠找到這個鏈接:https://www.lifewire.com/linus-unix-command-expect-2201096

它會做你想做的,我想。它最初是用TCL編寫的(早在Linux發明之前)。可能有像Python這樣的更新版本,或者其他的。

這裏的「導語」:

INTRODUCTION 

Expect is a program that "talks" to other interactive programs 
according to a script. Following the script, Expect knows what 
can be expected from a program and what the correct response 
should be. An interpreted language provides branching and 
high-level control structures to direct the dialogue.