Foros del Web » Programación para mayores de 30 ;) » Java »

Sondeo y Callback

Estas en el tema de Sondeo y Callback en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/02/2012, 03:58
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 9 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.

Etiquetas: callback, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:21.