CSharpUtils.Web._45.Fastcgi.FastcgiPacket.ReadFromAsync C# (CSharp) Method

ReadFromAsync() public method

public ReadFromAsync ( Stream ClientStream ) : Task
ClientStream Stream
return Task
		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;
		}