snmp4j 异步获取节点信息

1. 主要代码如下:

public class ResponseListenerTest {
    public static void main(String[] args) throws IOException, InterruptedException {
        Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
        snmp.listen();

        CommunityTarget target = new CommunityTarget();
        target.setCommunity(new OctetString("public"));
        target.setAddress(GenericAddress.parse("udp:192.168.100.61/161"));
        target.setRetries(1);
        target.setTimeout(2000);
        target.setVersion(SnmpConstants.version1);

        PDU pdu = new PDU();
        pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.3.0")));
        pdu.setType(PDU.GET);

        ResponseListener listener = new ResponseListener() {
            @Override
            public void onResponse(ResponseEvent event) {
                PDU resp = event.getResponse();
                VariableBinding vb = resp.get(0);
                System.out.println(vb.getOid().toString() + "^^^^" + vb.getVariable());
            }
        };
        CountDownLatch latch = new CountDownLatch(1);
        snmp.get(pdu, target, null, listener);
        latch.await(2, TimeUnit.SECONDS);
    }
}

2. 运行结果如下:

3. 在上面的例子中,也可以使用线程的方式处理:

但是需要注意的是:sleep的时间要小于 setTimeout 的时间,否则会出现异常。

4. 其中:

  target.setTimeout(2000); // 意思为:当发送请求后 2秒钟没有返回响应信息,表示已经超时了。
  target.setRetries(1);   // 意思为:当上面的逻辑超时后,再次发送请求的次数,为1次。
 
时间: 2024-07-30 14:43:25

snmp4j 异步获取节点信息的相关文章

ZTree 获取节点信息

效果如下: 我们就来说说如何让获取的:其实在官方的平台上都有很多好的例子的 这里是网址你们看看  http://www.ztree.me/v3/demo.php#_511 就是Ztree的点击前事件的监听beforeClick事件 下面我们把代码贴出来  供你们直接调试 测试 <!DOCTYPE html> <HTML> <HEAD> <TITLE> </TITLE> <meta http-equiv="content-type&

snmp4j获取mib信息的实例(测试成功)

使用java采用SNMP协议来获取设备上的MIB信息,测试例子采用的是本机作为测试,并且系统是win7而且启用了SNMP协议. 在win7上开启SNMP协议的教程如链接所示: http://blog.chinaunix.net/uid-24058189-id-2105677.html 在java中来操作snmp协议的jar包下载地址: http://www.snmp4j.org 工程结构(红框为最重要的两个文件): 本例子源码(采用maven框架,不影响例子): package mySNMP;

小程序框架之视图层 View~获取界面节点信息

获取界面上的节点信息 WXML节点信息 节点信息查询 API 可以用于获取节点属性.样式.在界面上的位置等信息. 最常见的用法是使用这个接口来查询某个节点的当前位置,以及界面的滚动位置. 示例代码: const query = wx.createSelectorQuery() query.select('#the-id').boundingClientRect(function(res){ res.top // #the-id 节点的上边界坐标(相对于显示区域) }) query.selectV

ASP.NET配置文件里经常使用到的节点信息

 web.config文件是一个XML文件,是以<confirguration>为根结点展开的. 上一面从宏观上解说了一下有关配置的文件的内容,以下是一些有关于配置文件经常使用的操作.图片请详见下图 .config经常使用操作 <appSettings>节点 主要用来存储asp.net应用程序的一些配置信息,个人感觉是存储一些以后可能会变化的配置信息.比如网页中上传文件的保存路径. 个人曾做过有关XML一个小型的数据库,通过<appSettings>来反射XML文件

C# 网络编程之通过豆瓣API获取书籍信息(一)

这篇文章主要是讲述如何通过豆瓣API获取书籍的信息,起初看到这个内容我最初的想法是在"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源码,再通过正则表达式分析获取结点标签得到信息.但后来发现可以通过豆瓣API提供的编程接口实现. 该文章仅是基础性C#网络编程文章,尝试测试了下豆瓣API,并没什么高深的内容.但希望对大家有所帮助,仅供学习. (警告:文章仅供参考,提供一种想法,否则访问多次-10次被403 forbidden莫怪.建议认证使用豆瓣API) 一

通过window.navigator对象获取地理位置信息并在百度地图上显示

通过window.navigator对象获取地理位置信息 Geolocation API:用户可共享地理位置,并在Web应用的协助下享用位置感知服务(location-aware services) window.navigator下的geolocation 对象的 getCurrentPosition 方法可以获取当前位置.getCurrentPosition 方法将发起对位置信息的异步请求并将立即返回.如果该请求成功完成,则调用用来实现位置数据接收的成功回调. 下面演示如何调用 getCur

纯JAVA环境获取APK信息(包名,版本,版本号,大小,权限...),纯JAVA语言编写PC端获取APK信息

纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限... 纯Java环境获取APK信息需要两个包:AXMLPrinter2.jar 跟jdom.jar,用于反编译XML和解析XML的 项目目录 这个类是获取APK信息的 public class ApkUtil { private static final Namespace NS = Namespace.getNamespace("http://schemas.android.com/apk/res/android"); @

struts2是如何加载相关的package元素节点信息的

这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解. 上一家公司是家小公司,做了一年的全栈开发,对前端的css布局都有所使用,也算辛苦.现在在一家互联网公司,专职做一名后端开发者,css都不需要自己去写了.现对布局这一块做点小总结,怕是自己多久不使用会忘了,毕竟以后还有可能做回全栈开发的,或者自己做些小站都有可能.由于不是专业的,哈哈,水平有限,忘各位批评指导. 和大部分大三的同学一样,今年5月份我也

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u