【发布时间】:2017-06-23 19:10:02
【问题描述】:
我需要从单个客户端/管理器进程向多个 snmp 代理发送获取请求/接收响应。 我已经根据以下 url 实现了客户端/代理: http://www.jitendrazaa.com/blog/java/snmp/create-snmp-client-in-java-using-snmp4j/http://www.jitendrazaa.com/blog/java/snmp/creating-snmp-agent-server-in-java-using-snmp4j/
为了向代理发送请求,对每个服务器执行以下操作:
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
...
pdu.setType(PDU.GET);
// communityTarget contains server target address.
ResponseEvent event = snmp.send(pdu, communityTarget, null);
为了接收来自服务器的响应,我是否需要为每个服务器执行单独的 transport.listen()?或创建 每个服务器都有一个新的 TransportMapping 和 Snmp 对象?
我不明白客户端进程如何知道哪个服务器返回了响应? ...自从 每次调用transport.listen(),监听端口地址(transport.getListenAddress())都是一样的。 并列出了 1 个额外的 udp 端口 (netstat)。
我打算从不同的后台线程轮询每个服务器(以便可以配置轮询间隔)。
谢谢
【问题讨论】: