public async Task<FastcgiPacket> ReadFromAsync(Stream ClientStream)
{
var Header = new byte[8];
await ClientStream.ReadAsync(Header, 0, Header.Length);
var Version = Header[0];
Type = (Fastcgi.PacketType)Header[1];
//BitConverter.ToUInt16()
RequestId = (ushort)((Header[2] << 8) | (Header[3] << 0));
var ContentLength = (ushort)((Header[4] << 8) | (Header[5] << 0));
var PaddingLength = Header[6];
Content = new ArraySegment<byte>(new byte[ContentLength]);
if (ContentLength + PaddingLength > 0)
{
await ClientStream.ReadAsync(Content.Array, 0, ContentLength);
await ClientStream.ReadAsync(PaddingRead, 0, PaddingLength);
}
//await Console.Out.WriteLineAsync(String.Format("READ: Packet({0}): {1}({2}:{3})", RequestId, Type, ContentLength, PaddingLength));
return this;
}