public static void DesconectarCliente(Socket cli) { var cliente = ClientesConectados.FirstOrDefault(c => c.socket.RemoteEndPoint == cli.RemoteEndPoint); ClientesConectados.Remove(cliente); Console.WriteLine("El cliente " + cliente.nombreCliente + " se ha desconectado"); }
/// <summary> /// Adiciona o cliente à lista de Clientes conectados e inicia o tratamento de mensagens do mesmo /// </summary> /// <param name="connectedTcpClient">Cliente a escutar</param> private void ListenForClientMessages(TcpClient connectedTcpClient) { ClientesConectados.Add(new Cliente(connectedTcpClient)); Console.WriteLine("Utilizadores ligados: " + ClientesConectados.Count); Cliente clienteConectado = ClientesConectados.Last(); while (true) { try { MessageHandler(clienteConectado); } catch (Exception ex) { Console.WriteLine("ChatServer: Program.ListenForClientMessages"); Console.WriteLine(ex.Message); Console.WriteLine("Um utilizador foi desconectado!"); ClientesConectados.Remove(clienteConectado); Console.WriteLine("Utilizadores ligados: " + ClientesConectados.Count); return; } } }