Address targetAddress = GenericAddress.parse("udp:192.168.14.165/161");
PDUv1 pdu = new PDUv1();
pdu.setType(PDU.V1TRAP);
pdu.setGenericTrap(PDUv1.COLDSTART);
pdu.add(new VariableBinding(SnmpConstants.sysUpTime,new TimeTicks(sysUpTime)));
pdu.add(new VariableBinding(SnmpConstants.sysDescr));
pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,SnmpConstants.linkDown));
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("yangru"));
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version1);
DefaultUdpTransportMapping udpTransportMap=new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(udpTransportMap);
System.out.println("----------snmp.send start----------");
ResponseEvent response = snmp.send(pdu, target);
System.out.println("----------snmp.send end----------");
//会出错的一行
if (response.getResponse() == null) {
// request timed out
}
else {
System.out.println("Received response from: " +
response.getPeerAddress());
// dump response PDU
System.out.println(response.getResponse().toString());
}
以上是我的代码,出错信息是在if (response.getResponse() == null) ,好象没有回应,不知道如何解释,且如何把我想要的发送的文本内容设置成PDU!!!
13 个解决方案
#1
都没有人用过snmp4j这个组件吗?
#2
由
ResponseEvent response = snmp.send(pdu, target);
可以看出,
内容不是放在pdu就是target对象中
你可以查一下PDUv1、CommunityTarget 类中有没有相关的方法。
ResponseEvent response = snmp.send(pdu, target);
可以看出,
内容不是放在pdu就是target对象中
你可以查一下PDUv1、CommunityTarget 类中有没有相关的方法。
#3
有没有具体的例子?就是简单的一个将文本内容发给snmp服务器!!!谢谢!!!!
100分相送啊!!!
http://community.csdn.net/Expert/topic/4319/4319389.xml?temp=.7871057
这个是在另一个地方的同样的问题!!!!
100分相送啊!!!
http://community.csdn.net/Expert/topic/4319/4319389.xml?temp=.7871057
这个是在另一个地方的同样的问题!!!!
#4
我来看看,不过我还没有用过snmp4j,以前一直用得是snmp stack
#5
程序没问题啊,可以成功发送出Trap PDU,因为你这个是一个TRAP PDU,所以是没有响应值的,所以Response是null,也就不能执行getResponse()方法,出现空指针错误,Trap发出去之后是不期响应的,不是Get Request PDU,发出去之后,期望Agent,回送一个Get Response过来
如果你希望发送自己的字符串只要,在你的PDU中这样处理
pdu.add(new VariableBinding(SnmpConstants.sysDescr,new OctetString("You System Description")));
后面的值是一个Variable,是一种合法的ASN类型
不知道你在哪,怎么小女子也做起这些事情来了
如果你希望发送自己的字符串只要,在你的PDU中这样处理
pdu.add(new VariableBinding(SnmpConstants.sysDescr,new OctetString("You System Description")));
后面的值是一个Variable,是一种合法的ASN类型
不知道你在哪,怎么小女子也做起这些事情来了
#6
听君一席话,胜读十年书啊!!!太谢谢 kypfos(不在寻梦) !!!!
初学snmp,有很多东西都不明白!想向你请教.
如何知道这个发送的消息已经成功发送到snmp的服务器去了呢?现在我是用一个捉包的工具Ethereal来看的,虽然能看到发送出去两个包snmp的包,但是却没有看到是发送出去的内容You System Description.
还有trap和get request PDU有什么区别?
真不好意思,让你见笑了,没办法,生活所逼啊!!!:P
初学snmp,有很多东西都不明白!想向你请教.
如何知道这个发送的消息已经成功发送到snmp的服务器去了呢?现在我是用一个捉包的工具Ethereal来看的,虽然能看到发送出去两个包snmp的包,但是却没有看到是发送出去的内容You System Description.
还有trap和get request PDU有什么区别?
真不好意思,让你见笑了,没办法,生活所逼啊!!!:P
#7
建议你买一本SNMP协议的书看看,一般介绍tcp/ip议的书籍也都有讲到snmp应用协议,v1版有5种PDU,v2版加入了两促PDU,v3版引入安全机制,安全性处理复杂得多
另外建议你用一个比Ethereal更好的工具,Ethereal界面太丑啦,忘记叫什么名字了,非常类似于Ethereal的功能,但是界面要友好,支持协议也多了
不过你要在Linux用监听工具就用Ethereal好了
我用包监听工具完整的看到了三个OID及对应的值都发送出去了
你可以安装windows组件的snmp代理,来测试其他PDU的构成
另外建议你用一个比Ethereal更好的工具,Ethereal界面太丑啦,忘记叫什么名字了,非常类似于Ethereal的功能,但是界面要友好,支持协议也多了
不过你要在Linux用监听工具就用Ethereal好了
我用包监听工具完整的看到了三个OID及对应的值都发送出去了
你可以安装windows组件的snmp代理,来测试其他PDU的构成
#8
是Packetyzer,玩转snmp还需要一些其他的工具测试,比照理解
#9
谢谢!我去网上找了TCP-IP详解这本书,看了里面对snmp的介绍,但是它对trap的介绍比较少,我现在想知道如果我想用trap来发送一个比较大的文本内容,它对发送的内容长度是否有限制,且不是说udp协议掉包的现象很普遍,那么当发送一个大的文本内容的话,如何保证它的完整性呢?
#10
包的大小好像是1300字节以下,相信这些字节已经够你发送信息了,一般一个trap只会上报几个简单的信息,snmp的Trap是以ascii明文的形式发送数据,像ipmi应用trap只需发送几个字节就能表示比较详细的信息
udp在局域网内掉包其实很少见的
udp在局域网内掉包其实很少见的
#11
真是太谢谢你了!!!!帮我解决了一个大难题!!!
不知你有msn吗?可以加我吗?yyzzhy_hy@hotmail.com,希望以后还有机会能向你请教问题!
不知你有msn吗?可以加我吗?yyzzhy_hy@hotmail.com,希望以后还有机会能向你请教问题!
#12
我给你回过CSDN信息啊,你查看一下,很早以前的
#13
谢谢!
#1
都没有人用过snmp4j这个组件吗?
#2
由
ResponseEvent response = snmp.send(pdu, target);
可以看出,
内容不是放在pdu就是target对象中
你可以查一下PDUv1、CommunityTarget 类中有没有相关的方法。
ResponseEvent response = snmp.send(pdu, target);
可以看出,
内容不是放在pdu就是target对象中
你可以查一下PDUv1、CommunityTarget 类中有没有相关的方法。
#3
有没有具体的例子?就是简单的一个将文本内容发给snmp服务器!!!谢谢!!!!
100分相送啊!!!
http://community.csdn.net/Expert/topic/4319/4319389.xml?temp=.7871057
这个是在另一个地方的同样的问题!!!!
100分相送啊!!!
http://community.csdn.net/Expert/topic/4319/4319389.xml?temp=.7871057
这个是在另一个地方的同样的问题!!!!
#4
我来看看,不过我还没有用过snmp4j,以前一直用得是snmp stack
#5
程序没问题啊,可以成功发送出Trap PDU,因为你这个是一个TRAP PDU,所以是没有响应值的,所以Response是null,也就不能执行getResponse()方法,出现空指针错误,Trap发出去之后是不期响应的,不是Get Request PDU,发出去之后,期望Agent,回送一个Get Response过来
如果你希望发送自己的字符串只要,在你的PDU中这样处理
pdu.add(new VariableBinding(SnmpConstants.sysDescr,new OctetString("You System Description")));
后面的值是一个Variable,是一种合法的ASN类型
不知道你在哪,怎么小女子也做起这些事情来了
如果你希望发送自己的字符串只要,在你的PDU中这样处理
pdu.add(new VariableBinding(SnmpConstants.sysDescr,new OctetString("You System Description")));
后面的值是一个Variable,是一种合法的ASN类型
不知道你在哪,怎么小女子也做起这些事情来了
#6
听君一席话,胜读十年书啊!!!太谢谢 kypfos(不在寻梦) !!!!
初学snmp,有很多东西都不明白!想向你请教.
如何知道这个发送的消息已经成功发送到snmp的服务器去了呢?现在我是用一个捉包的工具Ethereal来看的,虽然能看到发送出去两个包snmp的包,但是却没有看到是发送出去的内容You System Description.
还有trap和get request PDU有什么区别?
真不好意思,让你见笑了,没办法,生活所逼啊!!!:P
初学snmp,有很多东西都不明白!想向你请教.
如何知道这个发送的消息已经成功发送到snmp的服务器去了呢?现在我是用一个捉包的工具Ethereal来看的,虽然能看到发送出去两个包snmp的包,但是却没有看到是发送出去的内容You System Description.
还有trap和get request PDU有什么区别?
真不好意思,让你见笑了,没办法,生活所逼啊!!!:P
#7
建议你买一本SNMP协议的书看看,一般介绍tcp/ip议的书籍也都有讲到snmp应用协议,v1版有5种PDU,v2版加入了两促PDU,v3版引入安全机制,安全性处理复杂得多
另外建议你用一个比Ethereal更好的工具,Ethereal界面太丑啦,忘记叫什么名字了,非常类似于Ethereal的功能,但是界面要友好,支持协议也多了
不过你要在Linux用监听工具就用Ethereal好了
我用包监听工具完整的看到了三个OID及对应的值都发送出去了
你可以安装windows组件的snmp代理,来测试其他PDU的构成
另外建议你用一个比Ethereal更好的工具,Ethereal界面太丑啦,忘记叫什么名字了,非常类似于Ethereal的功能,但是界面要友好,支持协议也多了
不过你要在Linux用监听工具就用Ethereal好了
我用包监听工具完整的看到了三个OID及对应的值都发送出去了
你可以安装windows组件的snmp代理,来测试其他PDU的构成
#8
是Packetyzer,玩转snmp还需要一些其他的工具测试,比照理解
#9
谢谢!我去网上找了TCP-IP详解这本书,看了里面对snmp的介绍,但是它对trap的介绍比较少,我现在想知道如果我想用trap来发送一个比较大的文本内容,它对发送的内容长度是否有限制,且不是说udp协议掉包的现象很普遍,那么当发送一个大的文本内容的话,如何保证它的完整性呢?
#10
包的大小好像是1300字节以下,相信这些字节已经够你发送信息了,一般一个trap只会上报几个简单的信息,snmp的Trap是以ascii明文的形式发送数据,像ipmi应用trap只需发送几个字节就能表示比较详细的信息
udp在局域网内掉包其实很少见的
udp在局域网内掉包其实很少见的
#11
真是太谢谢你了!!!!帮我解决了一个大难题!!!
不知你有msn吗?可以加我吗?yyzzhy_hy@hotmail.com,希望以后还有机会能向你请教问题!
不知你有msn吗?可以加我吗?yyzzhy_hy@hotmail.com,希望以后还有机会能向你请教问题!
#12
我给你回过CSDN信息啊,你查看一下,很早以前的
#13
谢谢!