BF2Statistics.Gamespy.Net.GamespyTcpStream.ProcessReceive C# (CSharp) Method

ProcessReceive() private method

Once data has been recived from the client, this method is called to process the data. Once a message has been completed, the OnDataReceived event will be called
private ProcessReceive ( ) : void
return void
        private void ProcessReceive()
        {
            // If we do not get a success code here, we have a bad socket
            if (ReadEventArgs.SocketError != SocketError.Success)
            {
                HandleSocketError(ReadEventArgs.SocketError);
                return;
            }

            // Force disconnect (Specifically for Gpsp, whom will spam empty connections)
            if (ReadEventArgs.BytesTransferred == 0)
            {
                Close();
                return;
            }
            else
            {
                // Fetch our message as a string from the Buffer
                BufferDataToken token = ReadEventArgs.UserToken as BufferDataToken;
                RecvMessage.Append(
                    Encoding.UTF8.GetString(
                        ReadEventArgs.Buffer,
                        token.BufferOffset,
                        ReadEventArgs.BytesTransferred
                    )
                );

                // Process Message
                string received = RecvMessage.ToString();
                if (received.EndsWith("final\\") || received.EndsWith("\x00\x00\x00\x00"))
                {
                    // tell our parent that we recieved a message
                    RecvMessage.Clear(); // Clear old junk
                    DataReceived(received);
                }
            }

            // Begin receiving again
            BeginReceive();
        }