public bool ValidaAutenticacao(string nomeCliente) { ControlaXml oControlaXml = new ControlaXml(); List <Cliente> listaClientesAutenticados = oControlaXml.LeXML(); Cliente nomeClienteAutenticado = listaClientesAutenticados.FirstOrDefault(lca => lca.Apelido == nomeCliente); if (nomeClienteAutenticado != null) { return(true); } else { return(false); } }
public void LigaServidor() { ControlaXml oControlaXml = new ControlaXml(); listaClientesAutenticados = new List <Cliente>(); string nome = System.Net.Dns.GetHostName(); System.Net.IPAddress[] ip = System.Net.Dns.GetHostAddresses(nome); string ipMaquina = null; if (ip.Length == 4) { ipMaquina = ip[2].ToString(); } else if (ip.Length == 2) { ipMaquina = ip[1].ToString(); } TcpListener servidor = new TcpListener(IPAddress.Parse(ipMaquina), 8080); //oControlaXml.ExcreveXML(); listaClientesAutenticados = oControlaXml.LeXML(); Console.WriteLine("Servidor ligado"); while (true) { try { servidor.Start(); Socket socketConexao = servidor.AcceptSocket(); NetworkStream socketStream = new NetworkStream(socketConexao); BinaryReader le = new BinaryReader(socketStream); BinaryWriter escreve = new BinaryWriter(socketStream); string mensagemCliente = le.ReadString().ToLowerInvariant(); string[] mensagemQuebrada = mensagemCliente.Split('|'); string tipoMensagem = mensagemQuebrada[0]; if (tipoMensagem == "login") { string nomeCliente = mensagemQuebrada[1]; Autenticacao oAutenticacao = new Autenticacao(); bool resultadoAutenticacao = oAutenticacao.ValidaAutenticacao(nomeCliente); if (resultadoAutenticacao) { if (VerificaStatusCliente(listaClientesAutenticados, nomeCliente)) { dicionarioConexao.Add(nomeCliente, socketConexao); listaKeys.Add(nomeCliente); escreve.Write("autenticado"); Console.WriteLine(nomeCliente + " está online"); socketConexao = null; socketConexao = null; le = null; escreve = null; } else { escreve.Write("Você já esta logado em outra maquina"); } } else { escreve.Write("recusado"); socketConexao.Close(); socketStream.Close(); le.Close(); escreve.Close(); } } servidor.Stop(); } catch { continue; } } }