2014-11-07 3 views
0

Я использую RMI, у меня есть строка obj на моем сервере (или клиенте), и я хочу отправить ее всем клиентам, как я могу это сделать?Как отправить строку с сервера (или клиента) всем клиентам в JavaRMI?

public class Myclass extends UnicastRemoteObject implements Server { 
    Connection c=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306","root","123"); 
    String str2=""; 
    Myclass()throws Exception{ 
     LocateRegistry.createRegistry(1099); 
     Naming.rebind("My Class!!",this); 
     Class.forName("com.mysql.jdbc.Driver"); 
    } 
    //the override is cause of the interface 'Server' 
    @Override 
    public String Reciever(String str1) throws Exception { 
     str2="Say Hello to "+str1; 
     return str2; 
    } 
    public static void main(String[] args) throws Exception { 
     Myclass mc=new Myclass(); 
    } 
} 

в этом классе str2 будет посылать к этому клиенту, который работает Reciever(), как отправить его всем клиентам?

ответ

0

Серверы RMI не отправляют клиентам. Они ответят клиентам, когда они пришлите запрос, позвонив удаленным способом. Ответ сервера отправляется как возвращаемое значение. Вы должны будете, чтобы клиенты опросили сервер для этих сообщений, а также сделайте своих клиентов на серверах.

0

Из кода клиента найдите службу, а затем запросите объект сервера, и затем вы можете вызвать удаленные методы в этом классе.

http://docs.oracle.com/javase/tutorial/rmi/client.html

Также почему Ресивер() капитализируются? Это стандартная практика для методов работы с верблюжьим корпусом (начало нижнего регистра, верхний регистр для первой буквы новых слов).

Не уверен, что ваш сервер тоже прав, вы должны взглянуть на этот учебник, чтобы вы поняли, как и почему работает RMI. Это не длинный учебник. http://docs.oracle.com/javase/tutorial/rmi/overview.html

+0

У меня есть клиент и мой проект настолько больше, чем здесь, я просто хочу найти способ отправить msg2 всем клиентам, когда какой-то клиент звонит Reciever, я ищу простой способ ... – Arash