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…
Olhe soh o servidor nunca eh iniciado por um cliente. O servidor deve estar sempre ativo para realizar as solicitações.
publicclassServidorextendsThread{privateServerSocketserverSocket;/** Construtor */publicServidor()throwsIOException{// abre uma porta.serverSocket=newServerSocket(2004);System.out.println("Servidor no ar...");}/** * Mantem o serviço rodando indefinidamente */publicvoidrun(){while(true){try{// aguarda a chegada de uma solicitaçãoSocketsocket=serverSocket.accept();// cria um novo servico para atender a requisiçãonewServico(socket).start();}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}publicstaticvoidmain(String[]a){try{newServidor().start();}catch(IOExceptione){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.