tenho um trabalho pra entregar terça feira… sobre socket e thread… vou explicar qual o problema que eu estou tendo e ajuda de alguem pra ajudar:
eu tenho a classe Servidor… nela eu vou poder aceitar 2 clientes… entao criei um Socket com array de 2
Socket socket[] = new Socket[2];
até aqui beleza, a idéia é cada cliente conectar em uma socket…
depois eu espero os dois clientes conectarem e chamo o método start da thread
ServerSocket servidor = new ServerSocket(8081);
for (int i = 0; i < 2; i++) {
socket[i] = servidor.accept();
}
Thread t = new Thread(this);
t.start();
dentro da classe eu usei implements Runnable, dentro do método run meu objetivo é… receber 1 palavra de cada terminal, inverter as palavras, retornar pra eles e quem descobrir primeiro a palavra do outro ganha o jogo… o problema é ae… como eu vou saber quem descobriu primeiro?? vai uma pedaço do método - detalhe, o DataInputStream e PrintStrem eu criei como array também de 2.
/*recebe as palavras*/
entrada[0] = new DataInputStrem(socket[0].getInputStream());
entrada[1] = new DataInputStrem(socket[1].getInputStream());
/*inverter e retornar para os terminais*/
saida[0] = new PrintStream(socket[0].getOutputStream,true);
saida[1] = new PrintStream(socket[1].getOutputStream,true);
saida[0].println(entrada[1].readLine());
saida[1].println(entrada[0].readLine());
/* Agora nao sei como saber qual receber o retorno primeiro*/
/* se eu fizer assim, vai esperar o socket 1 receber e depois o 2*/
/* eu quero que o primeiro que receber termina o jogo*/
entrada[0] = new DataInputStrem(socket[0].getInputStream());
entrada[1] = new DataInputStrem(socket[1].getInputStream());
/*Assim recebe 1 de cada vez*/
alguem ae tem alguma idéia de como eu posso fazer isso??
obrigado