private void ProcessConnect(SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) { _isConnected = true; _clientToken = new ClientToken(0, e.AcceptSocket, _receiveEvent, _sendEvent); _receiveEvent.UserToken = _sendEvent.UserToken = e.UserToken = _clientToken; StartReceive(_receiveEvent); //Fire Connected event if (Connected != null) { if (CallConnectedAsync) { Connected.BeginInvoke(this, r => Connected.EndInvoke(r), null); } else { Connected(this); } } } else { ProcessConnectionError(e); } }