我想将一些文本内容发送到snmp管理基站上,在网上看到说是可以用snmp4j包,所以我就下载了一个,但是这个开源包的例子太少了,也不完全,现在写了一个test,却发现有错误,但是我用捉包软件看了,有发送一个snmp的包,且不知,要怎么将我想发送的文本内容放置到PDU里,请各位大侠多多帮忙!!!
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!!!
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!!!
ResponseEvent response = snmp.send(pdu, target);
可以看出,
内容不是放在pdu就是target对象中你可以查一下PDUv1、CommunityTarget 类中有没有相关的方法。
http://community.csdn.net/Expert/topic/4319/4319389.xml?temp=.7871057
这个是在另一个地方的同样的问题!!!!
pdu.add(new VariableBinding(SnmpConstants.sysDescr,new OctetString("You System Description")));后面的值是一个Variable,是一种合法的ASN类型不知道你在哪,怎么小女子也做起这些事情来了
初学snmp,有很多东西都不明白!想向你请教.
如何知道这个发送的消息已经成功发送到snmp的服务器去了呢?现在我是用一个捉包的工具Ethereal来看的,虽然能看到发送出去两个包snmp的包,但是却没有看到是发送出去的内容You System Description.
还有trap和get request PDU有什么区别?
真不好意思,让你见笑了,没办法,生活所逼啊!!!:P
不知你有msn吗?可以加我吗?[email protected],希望以后还有机会能向你请教问题!