Example #1
0
 private void Open()
 {
     if (_opened)
     {
         return;
     }
     _fs         = new FileStream(_file, FileMode.Open, FileAccess.Read, FileShare.Read);
     _index      = 0;
     _pcapHeader = ReadPcapHeader();
     _opened     = true;
 }
Example #2
0
        //public static unsafe T ReadValue<T>(Stream stream) where T : struct
        //{
        //    int l = Marshal.SizeOf(typeof(T));
        //    byte[] data = new byte[l];
        //    stream.Read(data, 0, l);
        //    fixed (byte* p = &data[0])
        //    {
        //        return *(T*)p;
        //    }
        //}

        public static unsafe bool ReadPcapHeader(Stream stream, out PcapHeader pcapHeader)
        {
            int l = sizeof(PcapHeader);

            byte[] data = new byte[l];
            if (stream.Read(data, 0, l) != l)
            {
                pcapHeader = new PcapHeader();
                return(false);
            }

            fixed(byte *p = &data[0])
            {
                pcapHeader = *(PcapHeader *)p;
                return(true);
            }
        }