private void NetMessageWriter_BroadcastMessage_WriteCompleted(object obj, NetworkMessageWriterWriteCompletedEventArgs e) { Console.WriteLine($"Broadcast message sent {catanClients.Find(c=>c.TcpClient==e.TcpClient).IPAddressPortNr}"); }
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); } }