我需要有关 Net:Telnet 的帮助。尝试连接到 VT-100 终端。从控制台使用普通 telnet 时,它工作正常。我可以连接并发出命令,但是当我从 perl 尝试相同的命令时,它会连接,但随后什么也没有发生 - 我没有输出或等待只是超时或显示提示不匹配(但它是它,因为它总是三个字母和> 标志)。我尝试了所有可能的方法-> 使用诸如 print、cmd、put 之类的方法,但没有任何成功,并且在那件事上停留了 2 天。
这是我的示例代码:
use Net::Telnet ();
my $conn = new Net::Telnet (TelnetMode => 0);
unless ($conn->open(Host => $host, Port => 23))
{
die "Error opening socket:: ".$conn->errmsg();
}
print "Connected to ".$conn->host().", port ".$conn->port()."\n";
$conn->prompt('/...>/'); # prompt is 014>
my $lines = $conn->put("15\r"); # command 15 to give me the site name
my ($a,$b);
($a,$b) = $conn->waitfor(Match=>'/...>/',Timeout=>100);
$conn->close;
当输入错误的命令时,通常 telnet 会显示错误信息和提示,但在 Perl 中它什么也不做。输入日志为空,输出日志为空,转储日志仅包含以下内容:
0x00000: 31 35 0d 0a 15..
我不知道还能尝试什么。
以下是正常 telnet 会话输出的外观:
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
014>15
15
014 TMR Name
014>^]
telnet> quit
Connection closed.
任何帮助表示赞赏