RunTimeException в агенте SNMP4J

Я скачал SNMP4J и добавил его в путь сборки моего проекта. Затем я добавил несколько кодов из 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, и это мой первый опыт исследования в сетевом курсе.


person Naeem Baghi    schedule 07.01.2014    source источник


Ответы (2)


Вы пытаетесь прослушивать локальный IP-адрес и порт, который уже используется другим процессом (например, операционной системой — если вы используете порт 161, это весьма вероятно).

Попробуйте использовать другой порт (или IP-адрес, но большинство служб прослушивают все локальные IP-адреса) или остановите процесс, который его использует.

person ooSNMP    schedule 02.02.2014

Как отмечает ooSNMP, какой-то процесс уже использует порт. Либо используйте другой порт, либо остановите процесс.

Windows: может быть служба: ловушка SNMPT на который автоматически прислушивался к ловушкам. Если вы используете Windows, это может быть проблемой. Это можно исправить, перейдя в Службы и остановив службу. Убедитесь, что вы установили службу в «ручной режим», иначе она в конечном итоге перезапустится (это можно сделать, щелкнув службу правой кнопкой мыши, выбрав Свойства и изменив Тип запуска).

Linux: узнать, какое приложение использует порт, можно с помощью ssкоманда. Вы можете завершить процесс с помощью killкоманды .

person Brett Holman    schedule 07.12.2017