tcpClient.ReceiveCallback C# (CSharp) Method

ReceiveCallback() private method

private ReceiveCallback ( IAsyncResult ar ) : void
ar IAsyncResult
return void
    public static void ReceiveCallback(IAsyncResult ar)
    {
        try
        {
            // Retrieve the state object and the client socket
            // from the asynchronous state object.

            StateObject state = (StateObject) ar.AsyncState;
            Socket client = state.workSocket;
            // Read data from the remote device.
            int bytesRead = client.EndReceive(ar);
            if (bytesRead > 0)
            {
                // There might be more data, so store the data received so far.
                state.sb.Append(Encoding.ASCII.GetString(state.buffer,0,bytesRead));
                //  Get the rest of the data.
                if (state.sb.Length > 1)
                {
                    response = Encoding.ASCII.GetString(state.buffer,0,bytesRead).ToString();
                    response = response.Substring(0, response.IndexOf("\n")+1);
                    Console.WriteLine(response);
                }
                client.BeginReceive(state.buffer,0,StateObject.BufferSize,0,
                    new AsyncCallback(ReceiveCallback), state);
            }
            else
            {
                // All the data has arrived; put it in response.
                if (state.sb.Length > 1)
                {
                    response = state.sb.ToString();
                    Console.WriteLine(response);
                }
                // Signal that all bytes have been received.

                //receiveDone.Set();

            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }