import java.lang.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class Monitor extends Thread
{
   int active;
   int port;
   String server,msg,geral;
   Conexao c;
   Vector servicos;
   
   public Monitor(String name, String m_server, int m_port,String mgeral, Vector mservicos)
   {
     super(name);
     geral = mgeral; 
     port = m_port;
     server = m_server;
     servicos = mservicos;
   }
   
   public void run()
   {
      try
      {
        Socket socket = new Socket(server,port);
        active = 1;
        do
        {
          try
          {
            c.send(socket," ");
            msg = c.receive(socket);
            if (msg.length() == 0)
            {
              System.out.println("Deu pau...");
              active = 0;
              System.out.println(active);
              break;
            }
            System.out.println("Servidor "+this.getName()+" no host:"+server+" e na porta:"+port+" funcionando");
            Thread.sleep(2000);
          }
          catch(Exception e)
          {
            active = 0;
            System.out.println("Deu pau....");
          }
        } while(active != 0);
      }
      catch( Exception e )
      {
        active = 0;
        System.out.println("Servidor "+this.getName()+" não está em funcionamento !!!");
      }
      System.out.println("Servidor "+this.getName()+" não está em funcionamento !!!");
      //
      //retira serviço da lista de serviços
      //
      int i=0;
      while (i < servicos.size())
      {
        if (((String)servicos.elementAt(i)).compareTo(geral) == 0 )
           servicos.removeElementAt(i);
        i++;   
      }
   }
}
