使用SNMP4J发送告警时,突然出现下面这样的异常:
java.io.IOException: Invalid argument
设置定发送端绑定IP和端口,如下:
// 设置管理进程的IP和端口
String address = "udp:172.16.54.77/1162";
logger.info("[SnmpSender.static] Init snmpTrap.Set remote address: " + address);
Address targetAddress = GenericAddress.parse(address);
TransportMapping transport = null;
try {
UdpAddress localUdpAddress = new UdpAddress("172.16.54.78/0");
transport = new DefaultUdpTransportMapping(localUdpAddress);
snmpTrap = new Snmp(transport);
transport.listen();
} catch (IOException e) {
logger.error("[SnmpSender.static] Error while init snmpTrap response: " + e.getMessage(), e);
}
如果在localUdpAddress中设置的IP地址为0.0.0.0,则发送告警时就会报:java.io.IOException: Invalid argument,参见如下DatagramSocket
另外,可能出现java.io.IOException: Invalid argument的情况,也可参考下:http://blog.youkuaiyun.com/clariones/article/details/6682526