0

我正在尝试创建一个 snmp 代理模拟器应用程序,它将创建多个具有唯一 IP 地址和端口的虚拟代理。我正在尝试使用 snmp4jagent。但我有一些例外,你能帮帮我吗?

我将 BaseAgent 类扩展到我自己的类,然后创建该类的多个实例。但是我一次不能启动多个代理,即。如果一个代理的状态正在运行,我无法在不停止正在运行的代理的情况下启动另一个代理(代码太重所以我在这里没有指定任何代码)启动代理的代码是

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/

提前致谢

普拉莫德

4

1 回答 1

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

如果您仍然无法启动第二个代理,还请提供异常消息和堆栈跟踪。

于 2013-11-07T12:45:52.893 回答