Timeout在下面的简单代码中不起作用:
my $t=time;
my $tel = new Net::Telnet (Timeout => 2);
eval{
$tel->open(Host=>$host,Port=>$port) || print "Not OK";
}
my $interval=time-$t;
print "Seconds: $interval";
当我尝试使用一些主机时,有时我得到20秒或更长时间。我使用ActiveState Perl, Win7.
telnet协议涉及各种自动交换,Net::Telnet
在幕后处理这些交换。open
不仅仅是连接。
使用这个来更清楚地了解正在发生的事情:
my $tel = new Net::Telnet (Timeout => 2, Dump_Log => $filename);