如何从服务器(或客户端)向JavaRMI中的所有客户端发送字符串?

时间:2014-11-07 12:12:04

标签: java rmi remote-server

我正在使用RMI,我的服务器(或客户端)中有一个字符串obj,我想将它发送给所有客户端,我该怎么做?

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()的客户端,如何将其发送给所有客户端?

2 个答案:

答案 0 :(得分:0)

从客户端代码中找到服务,然后请求服务器对象,然后可以在此类上调用远程方法。

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

为什么Reciever()资本化?这是骆驼案例中的方法的标准做法(小写开头,新单词的第一个字母大写)。

不确定您的服务器是否正确,您应该查看本教程以确保您了解RMI的工作原理和原因。这不是一个很长的教程。 http://docs.oracle.com/javase/tutorial/rmi/overview.html

答案 1 :(得分:0)

RMI服务器不会发送给客户端。当他们通过调用远程方法发送请求时,他们响应到客户端。服务器响应作为返回值发送。您必须让客户端在服务器上轮询这些消息,否则也将客户端变为服务器。