2013-11-11 2 views
0

Я пытаюсь создать приложение-создатель RMI в java, где каждому клиенту требуется отдельная игра с сервера, но каким-то образом комбинации для каждого нового клиента, которые запускаются, добавляются в одну игру, поэтому как будто каждый новый клиент присоединяется к основной игре.java rmi multiple clients same application

Вот мой код сервера:

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"); 
    } 
    } 
} 

Как сделать новую отдельную игру для каждого клиента? Спасибо заранее!

ответ

0

Объект в реестре должен быть фабричным объектом. Клиент должен просмотреть его, а затем вызвать фабричный метод, который возвращает новую игру, которая должна быть другим удаленным объектом.