加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

AnyEvent学习之2 -并行ping

发布时间:2020-12-16 00:21:00 所属栏目:大数据 来源:网络整理
导读:这个例子是参照CU flw斑竹的抓网页例子写的异步并行ping的例子。 使用了Anyevent::ping模块。(这个比较简单) 很奇怪,Anyevent::FastPing 模块怎么也无法正确运行。(功能太复杂,需要分析源码,还有c代码) ?? 后记:发现是例子 问题,按照test用例写就ok了

这个例子是参照CU flw斑竹的抓网页例子写的异步并行ping的例子。

使用了Anyevent::ping模块。(这个比较简单)

很奇怪,Anyevent::FastPing 模块怎么也无法正确运行。(功能太复杂,需要分析源码,还有c代码)

?? 后记:发现是例子 问题,按照test用例写就ok了.不过FastPing用法有些特别.

先看看ping模块的例子

use AnyEvent;
    use AnyEvent::Ping;

    my $c = AnyEvent->condvar;

    my $ping = AnyEvent::Ping->new;

    $ping->ping('google.com',1,sub {
        my $result = shift;
        print "Result: ",$result->[0][0]," in ",$result->[0][1]," secondsn";
        $c->send;
    });

    $c->recv;


在来是改造后的

注意,cv的方法不同,具体的不同点还需要看文档。

运行需要root权限

?

use AnyEvent;
use AnyEvent::Ping;


my $cocurrent = 100;    # 并发数
my @todoList = map { "192.168.6." . $_ } (1 .. 254); #


my $cv = AnyEvent->condvar;

my $ping = AnyEvent::Ping->new;

doit() foreach 1..$cocurrent;
sub doit{
    my $ip = shift @todoList;
    return if not defined $ip;

    $cv->begin;
    $ping->ping($ip,sub{ done( $ip,@_ ) } );
}

sub done {
    my ($ip,$result) = @_;

    $cv->end();
     print "Result($ip): "," secondsn";
    doit();
}

$cv->recv();
?
运行结果如下,可以看到是并行运行的,通的ip很快返回了结果
?
-bash-3.00# perl testping5.pl
Result(192.168.6.21): OK in 0.0064699649810791 seconds
Result(192.168.6.17): OK in 0.00709700584411621 seconds
Result(192.168.6.26): OK in 0.00679707527160645 seconds
Result(192.168.6.25): OK in 0.00708723068237305 seconds
Result(192.168.6.19): OK in 0.00787711143493652 seconds
Result(192.168.6.32): OK in 0.00708484649658203 seconds
Result(192.168.6.28): OK in 0.00774002075195312 seconds
Result(192.168.6.27): OK in 0.00805902481079102 seconds
Result(192.168.6.44): OK in 0.00707602500915527 seconds
Result(192.168.6.45): OK in 0.00722885131835938 seconds
Result(192.168.6.51): OK in 0.00716900825500488 seconds
Result(192.168.6.61): OK in 0.00674200057983398 seconds
Result(192.168.6.64): OK in 0.00671815872192383 seconds
Result(192.168.6.54): OK in 0.00789189338684082 seconds
Result(192.168.6.62): OK in 0.00749588012695312 seconds
Result(192.168.6.60): OK in 0.00805807113647461 seconds
Result(192.168.6.59): OK in 0.0083770751953125 seconds
Result(192.168.6.57): OK in 0.00889897346496582 seconds
Result(192.168.6.63): OK in 0.00864887237548828 seconds
Result(192.168.6.66): OK in 0.00878405570983887 seconds
Result(192.168.6.71): OK in 0.0086519718170166 seconds
Result(192.168.6.78): OK in 0.00849103927612305 seconds
Result(192.168.6.91): OK in 0.00778102874755859 seconds
Result(192.168.6.92): OK in 0.00813698768615723 seconds
Result(192.168.6.80): OK in 0.00931215286254883 seconds
Result(192.168.6.101): OK in 0.00742101669311523 seconds
Result(192.168.6.111): OK in 0.00497817993164062 seconds
Result(192.168.6.112): OK in 0.00486612319946289 seconds
Result(192.168.6.116): OK in 0.00392889976501465 seconds
Result(192.168.6.119): OK in 0.00369787216186523 seconds
Result(192.168.6.1): OK in 0.0177021026611328 seconds
Result(192.168.6.131): OK in 0.00130081176757812 seconds
Result(192.168.6.87): OK in 0.0696430206298828 seconds
Result(192.168.6.2): DEST_UNREACH in 3.0012469291687 seconds
Result(192.168.6.3): DEST_UNREACH in 3.00147294998169 seconds
Result(192.168.6.4): DEST_UNREACH in 3.00185203552246 seconds
Result(192.168.6.5): DEST_UNREACH in 3.00194692611694 seconds
Result(192.168.6.6): DEST_UNREACH in 3.0021870136261 seconds
Result(192.168.6.7): DEST_UNREACH in 3.00227880477905 seconds
Result(192.168.6.8): DEST_UNREACH in 3.00259494781494 seconds
Result(192.168.6.9): DEST_UNREACH in 3.00268912315369 seconds
Result(192.168.6.10): DEST_UNREACH in 3.00292301177979 seconds
Result(192.168.6.11): DEST_UNREACH in 3.00301194190979 seconds
Result(192.168.6.12): DEST_UNREACH in 3.00333189964294 seconds
Result(192.168.6.13): DEST_UNREACH in 3.00342607498169 seconds
Result(192.168.6.14): DEST_UNREACH in 3.00366616249084 seconds
Result(192.168.6.15): DEST_UNREACH in 3.00372099876404 seconds
Result(192.168.6.16): DEST_UNREACH in 3.00401592254639 seconds
Result(192.168.6.18): DEST_UNREACH in 3.00402808189392 seconds
Result(192.168.6.20): DEST_UNREACH in 3.00419211387634 seconds
Result(192.168.6.22): DEST_UNREACH in 3.00420808792114 seconds
Result(192.168.6.23): DEST_UNREACH in 3.00453901290894 seconds
Result(192.168.6.24): DEST_UNREACH in 3.00463604927063 seconds
Result(192.168.6.134): OK in 0.00504302978515625 seconds
Result(192.168.6.29): DEST_UNREACH in 3.00496792793274 seconds
Result(192.168.6.30): DEST_UNREACH in 3.00521111488342 seconds
Result(192.168.6.31): DEST_UNREACH in 3.00529789924622 seconds
Result(192.168.6.33): DEST_UNREACH in 3.00553202629089 seconds
Result(192.168.6.34): DEST_UNREACH in 3.0056300163269 seconds
Result(192.168.6.35): DEST_UNREACH in 3.00586700439453 seconds
Result(192.168.6.36): DEST_UNREACH in 3.00595688819885 seconds
Result(192.168.6.37): DEST_UNREACH in 3.00622701644897 seconds
Result(192.168.6.38): DEST_UNREACH in 3.00632309913635 seconds
Result(192.168.6.39): DEST_UNREACH in 3.00656080245972 seconds
Result(192.168.6.40): DEST_UNREACH in 3.00664901733398 seconds
Result(192.168.6.41): DEST_UNREACH in 3.00688910484314 seconds
Result(192.168.6.42): DEST_UNREACH in 3.00698494911194 seconds
Result(192.168.6.43): DEST_UNREACH in 3.00721502304077 seconds
Result(192.168.6.46): DEST_UNREACH in 3.00715589523315 seconds
Result(192.168.6.47): DEST_UNREACH in 3.00742816925049 seconds
Result(192.168.6.48): DEST_UNREACH in 3.00751900672913 seconds
Result(192.168.6.49): DEST_UNREACH in 3.00775384902954 seconds
Result(192.168.6.50): DEST_UNREACH in 3.00784301757812 seconds
Result(192.168.6.52): DEST_UNREACH in 3.00803685188293 seconds
Result(192.168.6.53): DEST_UNREACH in 3.00809597969055 seconds
Result(192.168.6.55): DEST_UNREACH in 3.00824594497681 seconds
Result(192.168.6.56): DEST_UNREACH in 3.00833296775818 seconds
Result(192.168.6.58): DEST_UNREACH in 3.00852489471436 seconds
Result(192.168.6.65): DEST_UNREACH in 3.00809907913208 seconds
Result(192.168.6.67): DEST_UNREACH in 3.00825786590576 seconds
Result(192.168.6.68): DEST_UNREACH in 3.00834679603577 seconds
Result(192.168.6.69): DEST_UNREACH in 3.00861597061157 seconds
Result(192.168.6.70): DEST_UNREACH in 3.00870990753174 seconds
Result(192.168.6.72): DEST_UNREACH in 3.00886797904968 seconds
Result(192.168.6.73): DEST_UNREACH in 3.00895214080811 seconds
Result(192.168.6.74): DEST_UNREACH in 3.00922989845276 seconds
Result(192.168.6.75): DEST_UNREACH in 3.00932383537292 seconds
Result(192.168.6.76): DEST_UNREACH in 3.0095579624176 seconds
Result(192.168.6.77): DEST_UNREACH in 3.00964617729187 seconds
Result(192.168.6.79): DEST_UNREACH in 3.00981307029724 seconds
Result(192.168.6.81): DEST_UNREACH in 3.00983595848083 seconds
Result(192.168.6.82): DEST_UNREACH in 3.01007390022278 seconds
Result(192.168.6.83): DEST_UNREACH in 3.01016020774841 seconds
Result(192.168.6.84): DEST_UNREACH in 3.01045107841492 seconds
Result(192.168.6.85): DEST_UNREACH in 3.0105459690094 seconds
Result(192.168.6.86): DEST_UNREACH in 3.01077389717102 seconds
Result(192.168.6.88): DEST_UNREACH in 3.01078486442566 seconds
Result(192.168.6.89): DEST_UNREACH in 3.0110490322113 seconds
Result(192.168.6.150): OK in 0.0120658874511719 seconds
Result(192.168.6.151): OK in 0.0123729705810547 seconds
Result(192.168.6.90): DEST_UNREACH in 3.01182007789612 seconds
Result(192.168.6.93): DEST_UNREACH in 3.01188015937805 seconds
Result(192.168.6.94): DEST_UNREACH in 3.01197290420532 seconds
Result(192.168.6.95): DEST_UNREACH in 3.01220989227295 seconds
Result(192.168.6.96): DEST_UNREACH in 3.01234412193298 seconds
Result(192.168.6.97): DEST_UNREACH in 3.01258397102356 seconds
Result(192.168.6.98): DEST_UNREACH in 3.0126531124115 seconds
Result(192.168.6.99): DEST_UNREACH in 3.01288199424744 seconds
Result(192.168.6.100): DEST_UNREACH in 3.01298594474792 seconds
Result(192.168.6.156): OK in 0.0132839679718018 seconds
Result(192.168.6.155): OK in 0.0139191150665283 seconds
Result(192.168.6.102): DEST_UNREACH in 3.01303601264954 seconds
Result(192.168.6.161): OK in 0.0131008625030518 seconds
Result(192.168.6.158): OK in 0.0138881206512451 seconds
Result(192.168.6.103): DEST_UNREACH in 3.01345086097717 seconds
Result(192.168.6.104): DEST_UNREACH in 3.0135509967804 seconds
Result(192.168.6.105): DEST_UNREACH in 3.01338505744934 seconds
Result(192.168.6.106): DEST_UNREACH in 3.0134699344635 seconds
Result(192.168.6.107): DEST_UNREACH in 3.01329588890076 seconds
Result(192.168.6.108): DEST_UNREACH in 3.0133969783783 seconds
Result(192.168.6.109): DEST_UNREACH in 3.01319193840027 seconds
Result(192.168.6.110): DEST_UNREACH in 3.01326704025269 seconds
Result(192.168.6.113): DEST_UNREACH in 3.01259398460388 seconds
Result(192.168.6.115): DEST_UNREACH in 3.01231789588928 seconds
Result(192.168.6.117): DEST_UNREACH in 3.01203107833862 seconds
Result(192.168.6.118): DEST_UNREACH in 3.0116720199585 seconds
Result(192.168.6.120): DEST_UNREACH in 3.01136684417725 seconds
Result(192.168.6.121): DEST_UNREACH in 3.0114529132843 seconds
Result(192.168.6.122): DEST_UNREACH in 3.01115393638611 seconds
Result(192.168.6.123): DEST_UNREACH in 3.0112419128418 seconds
Result(192.168.6.124): DEST_UNREACH in 3.01097893714905 seconds
Result(192.168.6.125): DEST_UNREACH in 3.01107215881348 seconds
Result(192.168.6.126): DEST_UNREACH in 3.01073002815247 seconds
Result(192.168.6.127): DEST_UNREACH in 3.01082015037537 seconds
Result(192.168.6.128): DEST_UNREACH in 3.01048707962036 seconds
Result(192.168.6.195): OK in 0.0105807781219482 seconds
Result(192.168.6.130): DEST_UNREACH in 3.01045513153076 seconds
Result(192.168.6.132): DEST_UNREACH in 3.00904107093811 seconds
Result(192.168.6.133): DEST_UNREACH in 3.00159215927124 seconds
Result(192.168.6.114): TIMEOUT in 5.00029110908508 seconds
Result(192.168.6.129): TIMEOUT in 5.00031805038452 seconds
Result(192.168.6.241): OK in 0.0025479793548584 seconds
Result(192.168.6.135): DEST_UNREACH in 3.00033688545227 seconds
Result(192.168.6.136): DEST_UNREACH in 3.00071001052856 seconds
Result(192.168.6.137): DEST_UNREACH in 3.00081396102905 seconds
Result(192.168.6.138): DEST_UNREACH in 3.00074291229248 seconds
Result(192.168.6.243): OK in 0.00137090682983398 seconds
Result(192.168.6.139): DEST_UNREACH in 3.00143313407898 seconds
Result(192.168.6.140): DEST_UNREACH in 3.0011260509491 seconds
Result(192.168.6.141): DEST_UNREACH in 3.00136494636536 seconds
Result(192.168.6.142): DEST_UNREACH in 3.00118803977966 seconds
Result(192.168.6.244): OK in 0.00210213661193848 seconds
Result(192.168.6.143): DEST_UNREACH in 3.00166893005371 seconds
Result(192.168.6.144): DEST_UNREACH in 3.00163388252258 seconds
Result(192.168.6.145): DEST_UNREACH in 3.00172591209412 seconds
Result(192.168.6.146): DEST_UNREACH in 3.00153589248657 seconds
Result(192.168.6.147): DEST_UNREACH in 3.00149917602539 seconds
Result(192.168.6.148): DEST_UNREACH in 3.00119686126709 seconds
Result(192.168.6.149): DEST_UNREACH in 3.0012149810791 seconds
Result(192.168.6.152): DEST_UNREACH in 3.0004711151123 seconds
Result(192.168.6.153): DEST_UNREACH in 3.00049591064453 seconds
Result(192.168.6.154): DEST_UNREACH in 3.00069904327393 seconds
Result(192.168.6.157): DEST_UNREACH in 3.00024104118347 seconds
Result(192.168.6.159): DEST_UNREACH in 3.00055718421936 seconds
Result(192.168.6.160): DEST_UNREACH in 3.00026702880859 seconds
Result(192.168.6.162): DEST_UNREACH in 3.00063109397888 seconds
Result(192.168.6.163): DEST_UNREACH in 3.00065088272095 seconds
Result(192.168.6.164): DEST_UNREACH in 3.00035405158997 seconds
Result(192.168.6.165): DEST_UNREACH in 3.00102305412292 seconds
Result(192.168.6.166): DEST_UNREACH in 3.00071001052856 seconds
Result(192.168.6.167): DEST_UNREACH in 3.00072908401489 seconds
Result(192.168.6.168): DEST_UNREACH in 3.00043296813965 seconds
Result(192.168.6.169): DEST_UNREACH in 3.00100708007812 seconds
Result(192.168.6.170): DEST_UNREACH in 3.00070786476135 seconds
Result(192.168.6.171): DEST_UNREACH in 3.00072598457336 seconds
Result(192.168.6.172): DEST_UNREACH in 3.00042700767517 seconds
Result(192.168.6.173): DEST_UNREACH in 3.00100111961365 seconds
Result(192.168.6.174): DEST_UNREACH in 3.00069999694824 seconds
Result(192.168.6.175): DEST_UNREACH in 3.00072002410889 seconds
Result(192.168.6.176): DEST_UNREACH in 3.00042700767517 seconds
Result(192.168.6.177): DEST_UNREACH in 3.00102996826172 seconds
Result(192.168.6.178): DEST_UNREACH in 3.00073313713074 seconds
Result(192.168.6.179): DEST_UNREACH in 3.0007541179657 seconds
Result(192.168.6.180): DEST_UNREACH in 3.00045919418335 seconds
Result(192.168.6.181): DEST_UNREACH in 3.0010039806366 seconds
Result(192.168.6.182): DEST_UNREACH in 3.00070405006409 seconds
Result(192.168.6.183): DEST_UNREACH in 3.0007221698761 seconds
Result(192.168.6.184): DEST_UNREACH in 3.00042915344238 seconds
Result(192.168.6.185): DEST_UNREACH in 3.00099396705627 seconds
Result(192.168.6.186): DEST_UNREACH in 3.00068783760071 seconds
Result(192.168.6.187): DEST_UNREACH in 3.00070714950562 seconds
Result(192.168.6.188): DEST_UNREACH in 3.00109910964966 seconds
Result(192.168.6.189): DEST_UNREACH in 3.00108695030212 seconds
Result(192.168.6.190): DEST_UNREACH in 3.00077891349792 seconds
Result(192.168.6.191): DEST_UNREACH in 3.00079894065857 seconds
Result(192.168.6.192): DEST_UNREACH in 3.00107884407043 seconds
Result(192.168.6.193): DEST_UNREACH in 3.00105619430542 seconds
Result(192.168.6.194): DEST_UNREACH in 3.00075197219849 seconds
Result(192.168.6.196): DEST_UNREACH in 3.00107002258301 seconds
Result(192.168.6.197): DEST_UNREACH in 3.00106310844421 seconds
Result(192.168.6.198): DEST_UNREACH in 3.00066995620728 seconds
Result(192.168.6.199): DEST_UNREACH in 3.0006890296936 seconds
Result(192.168.6.200): DEST_UNREACH in 3.00085806846619 seconds
Result(192.168.6.201): DEST_UNREACH in 3.00087809562683 seconds
Result(192.168.6.202): DEST_UNREACH in 3.00057315826416 seconds
Result(192.168.6.203): DEST_UNREACH in 3.00059199333191 seconds
Result(192.168.6.204): DEST_UNREACH in 3.00083684921265 seconds
Result(192.168.6.205): DEST_UNREACH in 3.00085806846619 seconds
Result(192.168.6.206): DEST_UNREACH in 3.00056290626526 seconds
Result(192.168.6.207): DEST_UNREACH in 3.00058197975159 seconds
Result(192.168.6.208): DEST_UNREACH in 3.00085997581482 seconds
Result(192.168.6.209): DEST_UNREACH in 3.00087904930115 seconds
Result(192.168.6.210): DEST_UNREACH in 3.00043606758118 seconds
Result(192.168.6.211): DEST_UNREACH in 3.00045585632324 seconds
Result(192.168.6.212): DEST_UNREACH in 3.00083184242249 seconds
Result(192.168.6.213): DEST_UNREACH in 3.00038599967957 seconds
Result(192.168.6.214): DEST_UNREACH in 3.00040698051453 seconds
Result(192.168.6.215): DEST_UNREACH in 3.00078082084656 seconds
Result(192.168.6.216): DEST_UNREACH in 3.00080299377441 seconds
Result(192.168.6.217): DEST_UNREACH in 3.0005087852478 seconds
Result(192.168.6.218): DEST_UNREACH in 3.00053000450134 seconds
Result(192.168.6.219): DEST_UNREACH in 3.00090193748474 seconds
Result(192.168.6.220): DEST_UNREACH in 3.00093197822571 seconds
Result(192.168.6.221): DEST_UNREACH in 3.0006320476532 seconds
Result(192.168.6.222): DEST_UNREACH in 3.00065398216248 seconds
Result(192.168.6.223): DEST_UNREACH in 3.00063180923462 seconds
Result(192.168.6.224): DEST_UNREACH in 3.00064897537231 seconds
Result(192.168.6.225): DEST_UNREACH in 3.00034189224243 seconds
Result(192.168.6.226): DEST_UNREACH in 3.00103306770325 seconds
Result(192.168.6.227): DEST_UNREACH in 3.00073003768921 seconds
Result(192.168.6.228): DEST_UNREACH in 3.00074815750122 seconds
Result(192.168.6.229): DEST_UNREACH in 3.0004358291626 seconds
Result(192.168.6.230): DEST_UNREACH in 3.00102305412292 seconds
Result(192.168.6.231): DEST_UNREACH in 3.00070810317993 seconds
Result(192.168.6.232): DEST_UNREACH in 3.00072979927063 seconds
Result(192.168.6.233): DEST_UNREACH in 3.00110721588135 seconds
Result(192.168.6.234): DEST_UNREACH in 3.00111699104309 seconds
Result(192.168.6.235): DEST_UNREACH in 3.00069117546082 seconds
Result(192.168.6.236): DEST_UNREACH in 3.00070905685425 seconds
Result(192.168.6.237): DEST_UNREACH in 3.0009560585022 seconds
Result(192.168.6.238): DEST_UNREACH in 3.00097608566284 seconds
Result(192.168.6.239): DEST_UNREACH in 3.00158905982971 seconds
Result(192.168.6.240): DEST_UNREACH in 3.00166511535645 seconds
Result(192.168.6.242): DEST_UNREACH in 3.00095105171204 seconds
Result(192.168.6.245): DEST_UNREACH in 3.00064992904663 seconds
Result(192.168.6.246): DEST_UNREACH in 3.0008659362793 seconds
Result(192.168.6.247): DEST_UNREACH in 3.00088810920715 seconds
Result(192.168.6.248): DEST_UNREACH in 3.00057291984558 seconds
Result(192.168.6.249): DEST_UNREACH in 3.00059008598328 seconds
Result(192.168.6.250): DEST_UNREACH in 3.00079202651978 seconds
Result(192.168.6.251): DEST_UNREACH in 3.0008111000061 seconds
Result(192.168.6.252): DEST_UNREACH in 3.00036001205444 seconds
Result(192.168.6.253): DEST_UNREACH in 3.00113201141357 seconds
Result(192.168.6.254): DEST_UNREACH in 3.00087714195251 seconds
-bash-3.00#                  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读