Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2012, 03:58
Eons
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Sondeo y Callback

Hola, tengo una duda que por más que busco por la red no logro solucionar, es la siguiente.
¿Cómo se consigue eliminar el sondeo con el callback? ejemplo:

Código:
//Sondeo
/* ... */
while(servidor.numero() < 5) {

/* Hacer lo que sea que haga el cliente */

}

//Callback
/* ... */
//Cuando la variable en cuestión en el servidor valga 5 o más, el cliente acaba.
Esto es porque necesito hacer el juego de hundir la flota por turnos online y en consola (con RMI) y debo repartir los turnos con callback y evitando el sondeo.

Tengo lo siguiente:
Una interfaz juego con un sólo método
String dispara(int x, int y) throws RemoteException;

El Cliente-Servidor Jugador con:

Código:
/* Matrices y variables para el juego ... */
String disparar(int x, int y) throws RemoteException {
//Devuelve "Agua", "Tocado" o "Hundido" según el resultado.
}

/* ... */

static void main(String[] args) {
Jugadorr ORem = new Jugador();
Naming.rebind("//localhost/"+args[0], ORem);

Thread.sleep(5000); //Para dar tiempo a activar los dos jugadores (5 segundos)

//Conecta con el otro jugador
juego Or = (juego)Naming.lookup("//localhost/"+args[1]);

/* Lógica del juego */
while(putos < 20) { //Gana quien llegue a 20 puntos
disparar(x,y);
//Ahora se debería repartir el turno
//En caso de agua el turno cambia y por tanto este cliente no puede disparar y esperar a que el otro dispare
//En caso de tocado sigue con el turno y el otro cliente debería seguir esperando.
}
No se si me he explicado bien.
¿Alguna referencia o ejemplo similar que me pueda resultar de ayuda?

Gracias.