解码ByteBuffer,snmp陷阱消息的结果

时间:2011-06-30 14:36:39

标签: java decode snmp bytebuffer snmp4j

我正在使用它来接收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但我真的很困惑使用哪一个。 它是否正确?你知道哪个MutableType可以使用吗?

1 个答案:

答案 0 :(得分:1)

我做错了。

感谢我的同事,这是纠正(忽略上述内容):

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

command包含所有信息,无需解码任何内容。