通过telnet发送击键

时间:2017-05-30 06:19:57

标签: c linux unix telnet keystroke

如何通过telnet发送多个击键。在日常工作中,我连接到服务器,接受“ESC + 3”和“ESC + E”就像按键一样。现在我尝试使用一些程序自动化该过程。为此,我必须通过编程方式进行击键。如果它是单行命令的意思,它就不会那么复杂。但该应用程序也期望击键。那么,有没有办法解决这个问题。

2 个答案:

答案 0 :(得分:2)

ESC只是一个普通(不可打印)的字符,带有ASCII码0x1b。因此,如果您的服务有一个打开的文件描述符fd,那么发送ESC+E以下内容将会执行以下操作:

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

答案 1 :(得分:0)

对于交互式ttys,有一个名为expect的程序。我很久没有使用它,但我找到了这个链接:https://www.lifewire.com/linus-unix-command-expect-2201096

我想,它会做你想做的事。它最初是用TCL编写的(早在Linux发明之前)。可能有像Python这样的新版本,或者其他类似的版本。

这是" blurb":

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.