Erro ao chamar o servidor em um Chat

1 resposta
dsystem

Boa tarde pessoal,

Estou desenvolvendo um Chat e estou encontrando algumas dificuldades.
Bom, o problema é o seguinte:

Eu consegui fazer um chat onde é possível a comunicação entre dois usuarios, isso eu fiz da forma básica usando Scanner.
Agora eu estou incrementando e para isso estou desenhando uma interface gráfica.

Eu criei um botão que chama o método que se comunica com o servidor. O problema é que, quando eu “aperto” o botão, ele me informa que o cliente se conectou com o servidor, porém o meu JFrame trava.

Vou colocar uma parte do meu código para que vocês possam me auxiliar.

//Parte da classe Cliente

  public Cliente(String host, int porta) {
        this.host = host;
        this.porta = porta;
    }

    public void executa() throws UnknownHostException, IOException {
        Socket cliente = new Socket(this.host, this.porta);
        System.out.println("O cliente se conectou ao servidor");

        //Recebe a msg do servidor
        Recebedor r = new Recebedor(cliente.getInputStream());
        new Thread(r).start();

        //Le msgs do teclado e manda pro server
        Scanner teclado = new Scanner(System.in);       
        PrintStream saida = new PrintStream(cliente.getOutputStream());        
       
        while (teclado.hasNextLine()) {
          saida.println(teclado.nextLine());
        }

        saida.close();
        teclado.close();
        cliente.close();
    }
//Parte do meu JFrame

Servi servi = new Servi();
		btnChamarServidor.addKeyListener(servi);


public class Servi implements KeyListener{//Responsável por chamar meu método
		
	Cliente cliente = new Cliente();
		public void keyPressed(KeyEvent evt) {
			if(evt.getKeyCode() == KeyEvent.VK_ENTER){
			  try {				  
					new Cliente("192.168.123.48",9900).executa();
					
			}  catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			}
			
		}

Alguém poderia me dar uma ajuda?

Valew!!!

1 Resposta

dsystem

Bom pessoal, depois de tanto bater cabeça, encontrei o problema

while (teclado.hasNextLine()) {  
          saida.println(teclado.nextLine());  
        }

Travava nessa linha e não fazia mais nada…

Se um dia alguem precisar,ta ae

:wink:

Criado 29 de outubro de 2010
Ultima resposta 29 de out. de 2010
Respostas 1
Participantes 1