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:
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.
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
0