Ejemplo n.º 1
0
 private void NetMessageWriter_BroadcastMessage_WriteCompleted(object obj, NetworkMessageWriterWriteCompletedEventArgs e)
 {
     Console.WriteLine($"Broadcast message sent {catanClients.Find(c=>c.TcpClient==e.TcpClient).IPAddressPortNr}");
 }
Ejemplo n.º 2
0
        private void NetMessageWriter_CatanClientAuth_Response_WriteCompleted(object obj, NetworkMessageWriterWriteCompletedEventArgs e)
        {
            //getDisconnectedClientConnections(silently:true);

            // new catan client
            CatanClient catanClient = new CatanClient(e.TcpClient, e.TcpClient.Client.RemoteEndPoint.ToString(), (e.NetMessage as CatanClientAuthenticationResponseMessage).AuthRequestMessage.Playername);

            catanClients.Add(catanClient);

            Console.WriteLine($"Catan player joined: {catanClient.Name}");
            if (catanClients.Count == maxClients)
            {
                // Start game
                tcpListener.Stop();
                Thread.Sleep(1000);

                catanClients.ForEach(client =>
                {
                    var netReader            = new NetworkMessageReader(client.TcpClient);
                    netReader.ReadCompleted += NetMessageReader_CatanClientMessageReceived;
                    netReader.ReadAsync(readLoop: true);
                }); // error handling wird ignoriert !!!

                iLogicLayer.ServerFinishedListening(catanClients);
            }
        }