public int PeekLength(Stream stream)
{
var len = (int)(stream.Length - stream.Position);
if (len < 4)
return 0;
// Peek Len
var bytes = new byte[4];
stream.Read(bytes, 0, 4);
stream.Seek(-4, SeekOrigin.Current);
return BitConverter.ToInt32(bytes, 0) + 4;
}