private void SocketConnected(object sender, SocketAsyncEventArgs e) { if (e.SocketError != SocketError.Success) { Debug.WriteLine("Failed to connect to server!"); Debug.WriteLine(e.SocketError); _gameInfo.State = RunStates.GameError; return; } Debug.WriteLine("Successfully connected to the server..."); // Update status display Deployment.Current.Dispatcher.BeginInvoke(() => _mainState.DisplayStatusMessage("Waiting for map...")); // Reconfigure socket to receive data byte[] response = new byte[2048]; e.SetBuffer(response, 0, response.Length); // Switch event handlers for received data e.Completed -= SocketConnected; e.Completed += SocketDataReceived; // Set a 4KB receive buffer e.SetBuffer(new byte[ReceiveBufferSize], 0, ReceiveBufferSize); Socket socket = (Socket)e.UserToken; _receivedData = new MemoryStream(); socket.ReceiveAsync(e); }