private void BeginReceive() { try { if (_buffer.Size - _buffer.Cursor < 512) { if (_buffer.Size + 1024 > StompConfiguration.MaxClientBufferSize && _buffer.Size + 1 >= StompConfiguration.MaxClientBufferSize) { throw new Exception("Maximum buffer size reached"); } int growSize = _buffer.Size + 1024; if (growSize > StompConfiguration.MaxClientBufferSize) { growSize = StompConfiguration.MaxClientBufferSize; } _buffer.Resize(growSize); } _socket.BeginReceive(_buffer.Buffer, _buffer.Cursor, _buffer.Size - _buffer.Cursor, SocketFlags.None, new AsyncCallback(OnClientReceive), null); } catch (Exception) { OnInternalDisconnect(); } }