SNMP4J代理中的RunTimeException

时间:2014-01-07 15:32:21

标签: java runtimeexception snmp4j

我已经下载了SNMP4J,并将其添加到我项目的buildpath中。然后我添加了http://shivasoft.in/blog/java/snmp/create-snmp-client-in-java-using-snmp4j/http://shivasoft.in/blog/java/snmp/creating-snmp-agent-server-in-java-using-snmp4j/的一些代码来检查我的代理商。但现在这些字符串打印在控制台中:

Exception in thread "main" java.lang.RuntimeException: java.net.BindException: Address already in use: Cannot bind
    at org.snmp4j.transport.TransportMappings.createTransportMapping(TransportMappings.java:123)
    at org.bihe.SNMPAgent.initTransportMappings(SNMPAgent.java:145)
    at org.snmp4j.agent.BaseAgent.init(BaseAgent.java:144)
    at org.bihe.SNMPAgent.start(SNMPAgent.java:157)
    at org.bihe.TestSNMPAgent.init(TestSNMPAgent.java:35)
    at org.bihe.TestSNMPAgent.main(TestSNMPAgent.java:13)
Caused by: java.net.BindException: Address already in use: Cannot bind
    at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
    at java.net.DualStackPlainDatagramSocketImpl.bind0(Unknown Source)
    at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source)
    at java.net.DatagramSocket.bind(Unknown Source)
    at java.net.DatagramSocket.<init>(Unknown Source)
    at java.net.DatagramSocket.<init>(Unknown Source)
    at org.snmp4j.transport.DefaultUdpTransportMapping.<init>(DefaultUdpTransportMapping.java:100)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.snmp4j.transport.TransportMappings.createTransportMapping(TransportMappings.java:104)
    ... 5 more

我在mediafire中上传了我的洞项目: https://www.mediafire.com/?lcyap63rs93qdwo 任何人都可以解释我,为什么程序抛出这些异常?我以前没有和snmp一起工作过,这是我第一次参加网络课程的研究。

2 个答案:

答案 0 :(得分:1)

您正在尝试侦听已由其他进程使用的本地IP和端口(例如操作系统 - 如果您使用端口161,则很可能)。

尝试使用其他端口(或IP地址 - 但大多数服务侦听所有本地IP地址)或停止正在使用它的进程。

答案 1 :(得分:1)

如ooSNMP所述,某些进程已在使用该端口。使用不同的端口或停止该过程。

Windows :可能有一项服务:SNMPT Trap正在自动侦听陷阱。如果您在Windows上,这可能是问题所在。这可以通过转到服务并停止服务来解决。确保将服务设置为“手动”,否则它将最终自行重启(通过右键单击服务,选择属性并更改启动类型来完成此操作。

Linux :您可以使用ss command了解哪个应用程序正在使用该端口。您可以使用kill command终止该过程。