示例#1
0
 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);
         }
     }
 }