测试写的subagent的例子(AGETNX)

这个博客展示了如何使用AgentXSubagent类创建一个SNMP子代理,包括初始化、连接到主代理、注册MIB对象和处理连接状态变化。通过示例代码详细解释了如何处理注册、连接和断开事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写了一个subagent的测试类但是注册上后只能正常发通知,从master端的GET ,GETNEXT这类的操作完全感知不到不知道是为什么?
MYSUBAGENTX类
  1. package org.snmp4j.agent.agentx.subagent.test.me;
  2. import org.snmp4j.agent.agentx.subagent.AgentXSubagent;
  3. import org.snmp4j.smi.OID;
  4. import org.snmp4j.agent.agentx.AgentX;
  5. import org.snmp4j.smi.OctetString;
  6. import org.snmp4j.agent.agentx.AgentXMessageDispatcherImpl;
  7. import org.snmp4j.agent.agentx.AgentXMessageDispatcher;
  8. import org.snmp4j.agent.agentx.AgentXResponseEvent;
  9. import org.snmp4j.smi.Address;
  10. import org.snmp4j.smi.TcpAddress;
  11. import org.snmp4j.smi.VariableBinding;
  12. import org.snmp4j.agent.agentx.AgentXSession;
  13. import org.snmp4j.agent.DefaultMOServer;
  14. import org.snmp4j.agent.MOServer;
  15. import org.snmp4j.agent.DuplicateRegistrationException;
  16. import org.apache.log4j.BasicConfigurator;
  17. import org.snmp4j.log.LogFactory;
  18. import org.snmp4j.log.Log4jLogFactory;
  19. import org.snmp4j.agent.agentx.AgentXProtocol;
  20. import java.io.*;
  21. import org.snmp4j.transport.ConnectionOrientedTransportMapping;
  22. import org.snmp4j.transport.TransportStateListener;
  23. import org.snmp4j.transport.TransportStateEvent;
  24. import java.util.List;
  25. import org.snmp4j.log.LogAdapter;
  26. import org.snmp4j.mp.SnmpConstants;
  27. import org.snmp4j.util.ThreadPool;
  28. import org.snmp4j.agent.mo.snmp.SNMPv2MIB.SysUpTimeImpl;
  29. import org.snmp4j.smi.TimeTicks;
  30. // revised by muning
  31. import java.net.InetAddress;
  32. /**
  33.  * @author huangxf
  34.  */
  35. public class MySubagent implements Runnable, TransportStateListener {
  36.     static {
  37.         LogFactory.setLogFactory(new Log4jLogFactory());
  38.     }
  39.     private static final LogAdapter LOGGER = LogFactory
  40.             .getLogger(MySubagent.class);
  41.     public static final OID SUBAGENT_ID = new OID();
  42.     private AgentXSubagent subagent;
  43.     private AgentX agentX;
  44.     private AgentXMessageDispatcher dispatcher;
  45.     private Address masterAddress;
  46.     private Address localAddress;
  47.     private AgentXSession session;
  48.     private int sessionID = 0;
  49.     private MOServer server;
  50.     private MyMib mymib;
  51.     private SysUpTimeImpl sessionContextUpTime = new SysUpTimeImpl();
  52.     public MySubagent(Address masterAddress, Address localAddress) {
  53.         this.masterAddress = masterAddress;
  54.         this.localAddress = localAddress;
  55.         this.dispatcher = new AgentXMessageDispatcherImpl();
  56.         this.agentX = new AgentX(dispatcher);
  57.         server = new DefaultMOServer();
  58.         server.addContext(new OctetString());
  59.         LOGGER.info("*********************************************");
  60.         LOGGER.info("构造一个子代理类subagent");
  61.         LOGGER.info("*********************************************");
  62.         this.subagent = new AgentXSubagent(agentX, SUBAGENT_ID,
  63.                 new OctetString("AgentX4J Test agent"));
  64.         this.subagent.setThreadPool(ThreadPool.create("AgentXSubAgent"3));
  65.         this.subagent.addMOServer(server);
  66.     }
  67.     public static void main(String[] args) {
  68.         BasicConfigurator.configure();
  69.         InetAddress iamaster = null;
  70.         try {
  71.             iamaster = InetAddress.getByAddress(new byte[] { (
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值