Java - Callback en RMI

   
Vista:

Callback en RMI

Publicado por Sergio (1 intervención) el 02/02/2012 20:16:17
Tengo un problema con Callback con RMI en java, es el siguiente.

Tengo que hacer el juego hundir la flota (por consola) para sólo dos jugadores pero que jueguen online, y debo hacer el traspaso de turnos mediante Callback y evitando el sondeo, ahí mi problema.
Tengo esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Jugador extends UnicastRemoteObject implements juego {
 
/* .... */
 
public static void main(String[] args) throws Exception
{
      Jugador ORem = new Jugador();
      Naming.rebind("//localhost/"+args[0], ORem);
 
      Thread.sleep(5000); //Para dar tiempo a activar los dos jugadores (5 segundos)
 
      juego Or = (juego)Naming.lookup("//localhost/"+args[1]);
 
     /* Lógica del juego */ 
     while(puntos < 20) {
 
        //El jugador dispara
        Or.disparar(x,y);
 
       /* Si el resultado es tocado, conserva el turno, si no el turno es del siguiente jugador 
       ¿Cómo hago esto? debe ser mediante callback */
 
       /* ....... */
     }
 
}
}


En la interfaz juego sólo esta el método String dispara(int x, int y), en Jugador esta implementado de forma que devuelva "Agua", "Tocado" o "Hundido".
El mismo jugador actúa como servidor y cliente a la vez.

No se como hacer que un jugador "espere" una señal del otro (por callback) para entonces poder disparar, y todo esto sin hacer sondeo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder