Uma classe chamar outra

1 resposta
D

to quase desistindo…
parece ser simples e é!

mas ta dando uma dor de cabeça…

eu tenho 3 programas. o principal e gerencia os outros 2… mas é bem simples… tem 2 botoes só… um chama o programa Servidor… e o outro chama o programa Cliente…

o bagulio compila e roda… mas na hora q eu aperto pra chamar o programa Servidor, ele “trava” as 2 janelas, a principal de antes e a q acabou de abrir…

olhem esse tópico:
http://www.portaljava.com.br/home/modules.php?name=Forums&file=viewtopic&t=3579&sid=0e2b616410e8d3e9bc5cee40ef26b702

para entender melhor o causo…

abraços

1 Resposta

A

Olhe soh o servidor nunca eh iniciado por um cliente. O servidor deve estar sempre ativo para realizar as solicitações.

public class Servidor extends Thread{

    private ServerSocket serverSocket;
    
    /** Construtor */    
    public Servidor() throws IOException
    {
        
        // abre uma porta.
        serverSocket = new ServerSocket ( 2004 );
        
        System.out.println("Servidor no ar...");       
    }
    
    /**
     * Mantem o serviço rodando indefinidamente
     */
    public void run()
    {     
        while(true){
            try{
                // aguarda a chegada de uma solicitação
                Socket socket = serverSocket.accept();
                
                // cria um novo servico para atender a requisição
                new Servico( socket ).start();
                            
            }catch(SocketException e){
              e.printStackTrace();  
            }catch(IOException e){
              e.printStackTrace();  
            }
        }
    }
    
    public static void main(String[] a)
    {
        try{
            new Servidor().start();        

        }catch(IOException e){
            System.out.println("####### IOException ########");
            e.printStackTrace();
        }        
    }    
}

Basta vc implementar a classe serviço para se comunicar com o cliente enquanto o servidor aguarda uma nova solicitação.

AlcidesFlach
[email removido]

Criado 2 de abril de 2004
Ultima resposta 3 de abr. de 2004
Respostas 1
Participantes 2