我正在尝试创建一个snmp代理模拟器应用程序,它将创建具有唯一IP地址和端口的多个虚拟代理。我正在尝试使用snmp4jagent。但是我可以帮助一些例外吗?
我将BaseAgent类扩展到我自己的类,然后创建该类的Multiple Instance。但是,我不能一次启动多个代理,即。如果一个代理的状态正在运行,我无法启动另一个代理而不停止正在运行的代理(代码太重,所以我没有在此指定任何代码)启动代理的代码是
public void start() throws IOException
{
init();
addShutdownHook();
getServer().addContext(new OctetString("public"));
finishInit();
run();
sendColdStartNotification();
}
然后我注册托管对象。
代码参考: http://shivasoft.in/blog/java/snmp/creating-snmp-agent-server-in-java-using-snmp4j/
提前致谢
普拉莫德
答案 0 :(得分:0)
它确实有效(经过测试)。也许您没有为不同的实例分配不同的IP地址。将此添加到您的班级:
/**
* The ip address of this agent.
*/
private String ipAddress;
/**
* Initializes the transport mappings (ports) to be used by the agent.
*
* @throws IOException
*/
protected void initTransportMappings() throws IOException {
transportMappings = new TransportMapping[1];
transportMappings[0] = new DefaultUdpTransportMapping(new UdpAddress(ipAddress + "/161"));
}
您可能必须将已使用的IP地址添加到NIC。 Linux的示例:
ip addr add 10.0.0.2/24 dev eth0
如果仍然无法启动第二个代理,请同时提供异常消息和堆栈跟踪。