java rmi多个客户端相同的应用程序

时间:2013-11-11 15:39:33

标签: java client-server rmi

我正在尝试在java中执行RMI mastermind应用程序,其中每个客户端都需要与服务器分开的游戏,但不知何故,每个运行的新客户端的组合都附加到一个游戏中,因此就像每个新客户端一样加入主要游戏。

这是我的服务器代码:

public class MastermindServer
{

public static void main(String[] args) throws RemoteException, MalformedURLException
{
    try
    {
        java.rmi.registry.LocateRegistry.createRegistry(1111);

        System.out.println("RMI registry ready...");
    }
    catch (Exception e)
    {
        e.printStackTrace();
        System.out.println("Exception starting RMI registry");
    }

    Naming.rebind("//localhost:1111/MastermindServer", new MastermindImplementation());

}
}

和我的客户代码:

public class MastermindClient
{
    private static MastermindMenuGUI menuFrame;

public static void main(String[] args) 
{
    System.out.println("before try catch");

    try {

        Registry clientRegistry = LocateRegistry.getRegistry("127.0.0.1",1111);
        System.out.println("Client registry " + clientRegistry);

        MastermindInterface game = (MastermindInterface) clientRegistry.lookup("theGame") ;
        System.out.println("Client ready");

        System.out.println(game.createCombination());

    }
    catch (Exception e) {
        e.printStackTrace();
        System.out.println("Exception in client");
    }
    } 
}

如何为每个客户制作一个新的单独游戏? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

注册表中的对象应该是工厂对象。客户端应该查找它,然后调用一个返回新游戏的工厂方法,该游戏应该是另一个远程对象。