2012-04-09 67 views
1

我正在使用期望响应网络服务。然而,我在Wireshark的已经注意到,当我做到以下几点:期望脚本不能正确发送新行

send "mystring\r\n" 

它被转换的线材:

“MyString的\ n”

我已经尝试设置stty raw,以及\r,\n的各种组合,以及发送期望的ASCII码。预计似乎将任何这些组合翻译成\n。问题是服务器似乎需要\r\n才能接受输入。我已经能够确定这一点,因为当我使用“交互”从内部期望,然后键入从壳^M(控制-V输入),Wireshark的看到的字符串:

“的myString \ r \ n”个

送出该导线,并且服务器正确地处理输入。如果没有翻译,有没有办法正确发送这种组合?

回答

2

您是在直接使用stty还是在expect脚本中使用set stty_init raw? (expectstty命令运行在您的终端,而不是pty)。您可能还想看看-nottyinit选项spawn

+0

啊...我的脚本中,我做的: stty的原料 我错过了手册页stty_init。我明天会试一试,看看它是如何发展的。谢谢! – blindsnowmobile 2012-04-11 06:15:41

+0

所以,我能够解决这个问题。在产生我的命令之前,我必须使用'set stty_init raw'。另外,我还必须在十六进制中发送'\ r \ n':'send“mystring \ x0d \ x0a”'。那就是诀窍。 – blindsnowmobile 2012-04-12 03:24:12