用Net::Telnet来弥补System.Net.Sockets的不足
昨天用System.Net.Sockets来检查服务器的80端口是否正常,但是它无法控制连接到主机的超时时间,按MSDN说法,好像只能控制Send 调用超时时间,没有找到连接超时时间设置,这样造成了当程序连接到一个没有开放80端口的IP时要等待十多秒,程序变得非常缓慢。
Socket 成员:http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket_members(v=VS.80).aspx
今天google perl telnet得知Net::Telnet,用它来弥补了上个程序的不足,速度快了几倍。
Net::Telnet模块介绍:http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
#!/usr/bin/perl
use strict;
use Net::Telnet();
my $host=$ARGV[0];
my $state;
my $obj = new Net::Telnet (Timeout => 5,
Port=> 80,
Errmode=>'die'
);
$state=eval{$obj->open($host)};
$obj->close;
if ($state==1){
print "$host|true\n";
}
else{
print "$host|false\n";
}

浙公网安备 33010602011771号