public static HTTP2FrameHeaderAndPayload ReadHeader(Stream stream) { byte[] buffer = BufferPool.Get(9, true); StreamRead(stream, buffer, 0, 9); HTTP2FrameHeaderAndPayload header = new HTTP2FrameHeaderAndPayload(); header.PayloadLength = BufferHelper.ReadUInt24(buffer, 0); header.Type = (HTTP2FrameTypes)buffer[3]; header.Flags = buffer[4]; header.StreamId = BufferHelper.ReadUInt31(buffer, 5); BufferPool.Release(buffer); header.Payload = BufferPool.Get(header.PayloadLength, true); StreamRead(stream, header.Payload, 0, header.PayloadLength); return(header); }