0

これを使用して、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

私は他のいくつかの s を試しましたMutableTypeが、どれを使うべきか本当に混乱しています。これは正しいです?もしそうなら、どれを使うべきか知っていますMutableTypeか?

4

1 に答える 1

1

私はそれを完全に間違っていました。

私の同僚のおかげで、ここに訂正があります(上記は無視してください):

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

commandすべての情報が含まれているため、何もデコードする必要はありません。

于 2011-06-30T16:01:34.737 に答える