private static byte[] _bytePayload = Encoding.UTF8.GetBytes("This is the payload to parse.\r\n\r\n");
private const string messageCompleteDelimiter = "\r\n\r\n";
public static void Main(string[] args)
var outerBuffer = new byte[0];
Console.WriteLine("Bytes available " + _bytePayload.Length.ToString());
while (bytesReceived < _bytePayload.Length)
var innerBuffer = new byte[10];
for(var i = 0; i < innerBuffer.Length; ++i)
if(bytesReceived >= _bytePayload.Length)
Console.WriteLine("Receiving byte " + bytesReceived.ToString());
innerBuffer[i] = _bytePayload[bytesReceived];
var mergeBuffer = new byte[outerBuffer.Length + innerBuffer.Length];
Array.Copy(outerBuffer, 0, mergeBuffer, 0, outerBuffer.Length);
Array.Copy(innerBuffer, 0, mergeBuffer, outerBuffer.Length, innerBuffer.Length);
outerBuffer = mergeBuffer;
var stringResult = Encoding.UTF8.GetString(outerBuffer);
Console.WriteLine(stringResult);