EditorEngine.Core.Endpoints.Tcp.TcpServer.ReadCompleted C# (CSharp) Method

ReadCompleted() private method

private ReadCompleted ( IAsyncResult result ) : void
result IAsyncResult
return void
        private void ReadCompleted(IAsyncResult result)
        {
            var stream = (Client) result.AsyncState;
            try
            {
                var x = stream.Stream.EndRead(result);
                if(x == 0) return;
                for (int i = 0; i < x;i++)
                {
                    if (isEndOfMessage(i))
                    {
                        byte[] data = _readBuffer.ToArray();
                        string actual;
                        if (_messageTermination == null)
                            actual = Encoding.UTF8.GetString(data, 0, data.Length);
                        else
                            actual = Encoding.UTF8.GetString(data, 0, data.Length - (_messageTermination.Length - 1));
                        if (IncomingMessage != null)
                            IncomingMessage(this, new MessageArgs(stream.ID, actual));
                        _readBuffer.SetLength(0);
                    }
                    else
                    {
                        _readBuffer.WriteByte(_buffer[i]);
                    }
                }
                stream.Stream.BeginRead(_buffer, 0, _buffer.Length, ReadCompleted, stream);
            }
            catch
            {
                disconnect(stream);
            }
        }