public void RecieveFirst()
        {
            byte[]       buffer        = new byte[1024 * 1024 * 3];
            IAsyncResult receiveResult = connection.BeginReceive(buffer, 0, 4, null, null);
            IAsyncResult sendResult    = connection.BeginSend(requests.Encode(), 0, requests.ByteLength, null, null);

            amountSent = requests.ByteLength;

            CompleteSendOrReceiveFirst(buffer, receiveResult, sendResult);
        }