使用SNMP4j和Java的多个SNMP代理

问题描述

| 我正在尝试创建一个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/ 提前致谢 普拉莫德     

解决方法

        它确实可以正常工作(经测试)。也许您没有为不同的实例分配不同的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
如果您仍然无法启动第二个代理,还请提供异常消息和堆栈跟踪。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...