Отсутствует значение в SNMP

Я использую snmp4j версии 1.10.1 из org.snmp4j, и это мой код приемника ловушек для захвата данных из ловушек snmp.

public class TrapReceiver extends Thread implements CommandResponder {

//@Autowired
private CarService carService;
List<PDUv1> listPdu = new ArrayList<PDUv1>();
List<PDUv1> temp = new ArrayList<PDUv1>();  
String message = "";
int totReceivedTrap = 0;

public TrapReceiver(CarService carService){
    this.carService = carService;
}

public synchronized void processPdu(CommandResponderEvent cmdRespEvent) {
    PDUv1 pdu = (PDUv1) cmdRespEvent.getPDU();
    if (pdu != null) {
        System.out.println(pdu.getVariableBindings().toString());           
    }
    totReceivedTrap++;
    System.out.println("total received trap "+totReceivedTrap);
}

public void run() {
    while (true) {
        try { 
            this.listen(new UdpAddress("192.168.1.5/162")); //alamat PDU akan listen
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
}

public synchronized void listen(TransportIpAddress address) throws IOException {
    AbstractTransportMapping transport;
    if (address instanceof TcpAddress) {
        transport = new DefaultTcpTransportMapping((TcpAddress) address);
    } else {
        transport = new DefaultUdpTransportMapping((UdpAddress) address);
    }

    ThreadPool threadPool = ThreadPool.create("DispatcherPool", 10);
    MessageDispatcher mDispathcher = new MultiThreadedMessageDispatcher(
            threadPool, new MessageDispatcherImpl());

    // add message processing models
    mDispathcher.addMessageProcessingModel(new MPv1());
    mDispathcher.addMessageProcessingModel(new MPv2c());

    // add all security protocols
    SecurityProtocols.getInstance().addDefaultProtocols();
    SecurityProtocols.getInstance().addPrivacyProtocol(new Priv3DES());

    // Create Target
    CommunityTarget target = new CommunityTarget();
    target.setCommunity(new OctetString("public"));

    Snmp snmp = new Snmp(mDispathcher, transport);
    snmp.addCommandResponder(this);

    transport.listen();
    message ="Listening on " + address;
    System.out.println(message);

    try {
        this.wait();
    } catch (InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
}

public String getMessage(){
    return this.message;
}   
}

Но отсутствует одно значение переменной, значением этой переменной является широта и долгота (формат: -903849323.20384;+230349402.03000). И когда я перехватываю данные с помощью wireshark, я тоже получаю значение.

Скриншот http://www.mediafire.com/view/?kjz1drb9jhda88a http://www.mediafire.com/view/?ov6lqn6u9n669my

Почему данные нулевые, что не так.


person Mahadi Siregar    schedule 20.02.2013    source источник


Ответы (1)


Если вы не видите значения внутри пакета, захваченного wireshark, то вполне допустимо, что вы получаете нулевое значение в коде. Что еще вы ожидаете?

Скорее всего, это проблема/особенность агента SNMP, работающего на устройстве (например, не было задано географическое положение, недоступен сигнал GPS и т. д.).

person L.R.    schedule 05.03.2013
comment
Спасибо. Я сомневаюсь, может быть, что-то не так с моей сетью. И после проверки это вызвано устройством (GPS) - person Mahadi Siregar; 06.03.2013