我正在使用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()
的客户端,如何将其发送给所有客户端?
答案 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服务器不会发送给客户端。当他们通过调用远程方法发送请求时,他们响应到客户端。服务器响应作为返回值发送。您必须让客户端在服务器上轮询这些消息,否则也将客户端变为服务器。