Package org.hxzon.jnetpcap

Source Code of org.hxzon.jnetpcap.JPcapPacket

package org.hxzon.jnetpcap;

import org.jnetpcap.PcapHeader;
import org.jnetpcap.nio.JBuffer;
import org.jnetpcap.packet.JHeader;
import org.jnetpcap.packet.PcapPacket;

public class JPcapPacket extends PcapPacket {
    private Class<? extends JHeader> _clazz;

    public JPcapPacket(byte[] data, Class<? extends JHeader> clazz) {
        super(POINTER);
        PcapHeader pcapHeader = new PcapHeader();
        super.transferHeaderAndDataFrom(pcapHeader, new JBuffer(data));
//    super.getDefaultScanner().scan(this, Ethernet.ID);
        this._clazz = clazz;
    }

    public JPcapPacket(PcapPacket src, Class<? extends JHeader> clazz) {
        super(src);
        this._clazz = clazz;
    }

    public JPcapPacket(PcapPacket src) {
        super(src);
    }

    public Class<? extends JHeader> getType() {
        return _clazz;
    }

    public byte[] getBytes() {
        byte[] data = new byte[this.size()];//size not getTotalSize
        this.transferTo(data);
        return data;
        //or
//    ByteBuffer buffer=ByteBuffer.allocate(this.getTotalSize());
//    this.transferTo(buffer);
//    buffer.flip();
//    byte[] data=new byte[buffer.remaining()];
//    buffer.get(data);
//    return data;
        //state and data(state and data must match when init)
//    byte[] data=new byte[this.getTotalSize()];
//    super.transferStateAndDataTo(data);
//    return data;
    }
}
TOP

Related Classes of org.hxzon.jnetpcap.JPcapPacket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.