anyevent::snmp+coro
来源:互联网 发布:作图软件大全 编辑:程序博客网 时间:2024/06/08 09:05
anyevent是基于事件和回调的格式,有时候用起来不太方便.
结合coro变成同步方式就容易理解一些.
#/usr/bin/env perl#测试anyevent::snmp+coro#测试取多个oiduse Coro;use AnyEvent;use AnyEvent::SNMP;use Net::SNMP;my $cocurrent = 1; # 并发数#my @todoList = map { "192.168.6." . $_ } (1 .. 254); #my @todoList = ("192.168.6.87","192.168.6.25","192.168.6.45"); #my $oid=".1.3.6.1.2.1.1.3.0"; #sysuptimemy $oid1=".1.3.6.1.2.1.1.1.0"; #sysDescrmy @coro;#my $cv = AnyEvent->condvar;doit() foreach 1..$cocurrent;sub doit{ my $ip = shift @todoList; return if not defined $ip; my $sess=Net::SNMP->session (-hostname => $ip, -community => "public", -timeout => 1, -nonblocking => 1, -translate => [-timeticks => 0x0] ); #先取sysuptime push @coro, async { #print "$ip.\n"; my $ret=$sess->get_request ( -varbindlist => [ $oid ], #-varbindlist => \@oids, -callback => Coro::rouse_cb ); #my @result = Coro::rouse_wait; my ($session) = Coro::rouse_wait; my $result = $session->var_bind_list(); if (!defined $result) { printf "ERROR: Get request failed for host '%s': %s.\n", $session->hostname(), $session->error(); } else{ printf "The sysuptime for host '%s' is %s.\n", $session->hostname(), $result->{$oid}; #继续取sysDescr #print "$ip.\n"; #push @coro, async { my $ret=$sess->get_request ( -varbindlist => [ $oid1 ], -callback => Coro::rouse_cb ); my ($session) = Coro::rouse_wait; my $result = $session->var_bind_list(); if (!defined $result) { printf "ERROR: Get request sysDescr failed for host '%s': %s.\n", $session->hostname(), $session->error(); } else{ printf "The sysDescr for host '%s' is %s.\n", $session->hostname(), $result->{$oid1}; } #} } &doit(); }} foreach (@coro) {#print "joining\n";$_->join;#print "joined\n";};
- anyevent::snmp+coro
- Anyevent::SNMP实例
- anyevent::socket+coro::handle client编程(测试客户端)
- Anyevent::socket和Coro::Handle组合,echo server(完结)
- anyevent::snmp(2) 扫描地址段
- anyevent::snmp(3)使用ae::delay实现并行+顺序请求
- perl AnyEvent
- Anyevent学习之一:Anyevent::HTTP
- anyevent::socket+anyevent::client 测试客户端
- AnyEvent::HTTP 介绍
- perl 安装AnyEvent::HTTP
- perl coro socket编程(2)-客户端coro改造
- coro::socket+coro::handle client编程(测试client)
- coro::socket+coro::handle echo server(2)-sysread 的改造
- SNMP
- SNMP
- SNMP
- SNMP
- Cain嗅探到的RDP包批量解析为用户名+密码的php脚本
- Stratos2.0的架构
- POJ 1423 Greatest Common Increasing Subsequence【裸LCIS】
- 为什么优秀的程序员既懒又笨
- C# 仿金山毒霸启动和关闭淡入淡出效果
- anyevent::snmp+coro
- 细说Cookie
- C语言面试题目总结
- 实现在Hibernate中的分页查询原理解读
- SVN上传文件注意事项-------------------养成良好的项目文件上传习惯
- android 通过KSOAP调用.NET webservice中的服务接口
- java多线程
- 深入浅出Z-Stack OSAL多任务资源分配机制
- c#使用输出html字符串进行导出excel功能时,常用到得几种格式