示例#1
0
 private void NetMessageReader_CatanClientMessageReceived(object obj, NetworkMessageReaderReadCompletedEventArgs e)
 {
     if (e.NetworkMessage is CatanClientStateChangeMessage)
     {
         var gameStateMessage = e.NetworkMessage as CatanClientStateChangeMessage;
         if (catanClients.Exists(client => client.ID == gameStateMessage.ClientID && client.IPAddressPortNr.Equals(e.TcpClient.Client.RemoteEndPoint.ToString())))
         {
             iLogicLayer.ClientGameStateChangeMessageReceived(gameStateMessage);
         }
     }
 }
示例#2
0
 private void NetMessageReader_CatanClientAuth_Request_ReadCompleted(object obj, NetworkMessageReaderReadCompletedEventArgs e)
 {
     lock (catanClients)
     {
         try
         {
             CatanClientAuthenticationRequestMessage authMessage = e.NetworkMessage as CatanClientAuthenticationRequestMessage;
             // Checking auth
             if (iLogicLayer.IsAuthenticationRequestMessageOk(authMessage))
             {
                 NetworkMessageWriter netMessageWriter = new NetworkMessageWriter(e.TcpClient);
                 netMessageWriter.WriteError     += (o, ee) => { ee.TcpClient.Close(); };
                 netMessageWriter.WriteCompleted += NetMessageWriter_CatanClientAuth_Response_WriteCompleted;
                 netMessageWriter.WriteAsync(new CatanClientAuthenticationResponseMessage(authMessage));
             }
             else
             {
                 e.TcpClient.Close(); // Client wird rausgeworfen, wenn Pass falsch ist !!
             }
         }
         catch (Exception ex)
         {
             e.TcpClient.Close();
             iLogicLayer.ThrowException(ex);
         }
     }
 }