public void Run() { try { IPAddress ipLocal = GetLocalIP(); try { listener = new TcpListener(ipLocal, porta); listener.Start(); } catch (Exception e) { Console.WriteLine(e); MessageBox.Show("Não foi possível ligar o serviço, verifique se a porta já está em uso ou se a rede está funcionando.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); servidorForm.SetServidorLigado(-1); return; } servidorForm.SetTbIP(ipLocal.ToString()); servidorForm.AddMensagem("Chat ligado."); while (ligado) { client = listener.AcceptTcpClient(); Cliente cliente = new Cliente(servidorForm, client); servidorForm.clientes.Add(cliente); Thread thread = new Thread(new ThreadStart(cliente.Run)); thread.Start(); } } catch (Exception) { if (!servidorForm.formClosing) { servidorForm.SetServidorLigado(-1); } } }