Problem background
When I tested sending SNMP Trap V3 version alarm data locally, the program reported the following error:
org.snmp4j.MessageException: Cannot assign requested address: Datagram send failed
at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:514)
at org.snmp4j.Snmp.sendMessage(Snmp.java:1005)
at org.snmp4j.Snmp.send(Snmp.java:885)
at org.snmp4j.Snmp.send(Snmp.java:878)
at org.snmp4j.Snmp.send(Snmp.java:843)
at mirale.luna.snmp.trap.SnmpSendTrapV3.sendPDU(SnmpSendTrapV3.java:80)
at mirale.luna.snmp.trap.SnmpSendTrapV3.main(SnmpSendTrapV3.java:88)
problem causes
When setting the Trap receiver address, the IP was set to 0.0.0.0 , which resulted in an error!
Address targetAddress = GenericAddress.parse("udp:0.0.0.0/162");
solution
Because it is a local test to send and receive Trap alarms, just change the receiver IP from 0.0.0.0 to 127.0.0.1.
After modification:
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/162");
The SNMP Trap V3 alarm data can be successfully sent.