用Net::Telnet来弥补System.Net.Sockets的不足

本文探讨了使用System.Net.Sockets时遇到的连接超时问题,并通过引入Perl的Net::Telnet模块实现了更快速有效的端口检查方法。

  昨天用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";
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值