Декодировать ByteBuffer, результат сообщения ловушки snmp - PullRequest
0 голосов
/ 30 июня 2011

Я использую это для получения сообщения ловушки snmpv1:

transport.addTransportListener(new TransportListener() {
    public void processMessage(TransportMapping transportmapping, 
            Address address, ByteBuffer byteBuffer) {
        BERInputStream berStream = new BERInputStream(byteBuffer);
        BER.decodeString(berStream, new BER.MutableByte());
    }
)};

Моя проблема в том, что я не знаю, как разобрать byteBuffer, чтобы получить данные, которые агент отправил в понятном виде.Вот что я получу, если выполню свой код сейчас:

java.io.IOException: Wrong ASN.1 type. Not a string: 48 at position 1

Я пробовал с некоторыми другими MutableType s, но я действительно запутался, какой использовать.Это правильно?Вы знаете, какой MutableType использовать, если так?

1 Ответ

1 голос
/ 30 июня 2011

Я делал это совершенно неправильно.

Спасибо моему коллеге, вот исправление (игнорируйте вышеупомянутое):

Snmp snmp = new Snmp(transport);
CommandResponder trapPrinter = new CommandResponder() {
    public synchronized void processPdu(CommandResponderEvent e) {
        PDU command = e.getPDU();
    }
};

command содержит всю информацию, нетнужно что-то декодировать.

...