Pessoal,
estou tentando fazer um jogo em rede usando RMI. Queria saber se depois de registrar meu serviço [rebind(“servico”, servico);], tem como eu saber quem deu um lookup desse serviço?
Vejam o código que fiz até agora:
package br.upe.ecomp.util;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.ExportException;
import java.util.Observable;
import java.util.Observer;
import br.upe.ecomp.model.Game;
public class Server extends Observable implements Runnable
{
public Server(Observer observer) throws RemoteException
{ this.addObserver(observer); }
public void run()
{
try
{
Server.registerGameService(new Game());
server.accept(); //aqui ficaria esperando o primeiro consumidor do serviço.
String host = server.getHost(); //aqui seria obtido o host do primeiro consumidor do serviço.
lookup(host, "RemoteGame"); //aqui o server daria o lookup do servico que o consumidor possui.
}
catch (RemoteException e)
{ e.printStackTrace(); }
this.setChanged();
this.notifyObservers();
}
public static void registerGameService(Game game) throws RemoteException
{
Registry registry = LocateRegistry.getRegistry(1099);
try
{ registry = LocateRegistry.createRegistry(1099); }
catch(ExportException e) {}
registry.rebind("RemoteGame", game);
}
}
Como posso fazer isso?
Abs!