我在远程方法调用期间对呼叫序列有许多疑问。 以下是我读取的4个无错误代码片段,了解RMI。了解RMI期间的呼叫序列
1)INTERFACE
import java.rmi.*;
public interface AddServerIntf extends Remote {
double add(double d1, double d2) throws RemoteException;
}
2.)实施
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
public AddServerImpl() throws RemoteException {} // what is it meant for ?
public double add(double d1 , double d2) throws RemoteException {
return d1 + d2;
}
}
3.)AddServer类
import java.net.*;
import java.rmi.*;
public class AddServer {
public static void main(String args[]) {
try {
AddServerImpl addServerImpl = new AddServerImpl();
Naming.rebind("AddServer",addServerImpl); // what does it do and how ?
} catch(Exception exc) {
System.out.println("Exception : " + exc);
}
}
}
4.)了addClient类
import java.rmi.*;
public class AddClient {
public static void main(String args[]) {
try {
String addServerURL = "rmi://" + args[0] + "/AddServer";
AddServerIntf addServerIntf = (AddServerIntf)Naming.lookup(addServerURL); // how does it look up and how does it return ?
System.out.println("The first number is : " + args[1]);
double d1 = Double.valueOf(args[1]).doubleValue();
System.out.println("The second number is : " + args[2]);
double d2 = Double.valueOf(args[2]).doubleValue();
System.out.println("The sum is : " + addServerIntf.add(d1,d2)); // what does it mean to call the method of an interface ?
} catch(Exception exc) {
System.out.println(exc);
}
}
}
文件服务器计算机上:AddServer.class,AddServerImpl.class,AddServerImpl_Stub.class,AddServerIntf.class
文件客户机上:AddServerIntf.class ,AddClient.class,AddServerImpl_Stub.class
将上述文件保留在各自的位置后,我开始rmiregistry在服务器上,然后使用java AddServer
启动服务器,然后使用java 127.0.0.1 20 30
启动客户端一旦客户端启动这句话是什么(AddServerIntf)Naming.lookup(addServerURL);
代码AddClient
吗?
客户端程序开始执行时执行的例程是什么?它是如何返还的?
这个陈述在AddServer
中做了什么?
最后,当我打电话来使用addServerIntf.add(d1,d2)
获取总和时,它是什么意思(调用接口的方法)?为什么我要调用接口的方法?那是什么?
我无法理解RMI的机制,谁调用谁和如何?
@voterToClose我问过上面的代码是如何工作的?将结果w.r.t返回给上述代码涉及哪些步骤? – 2011-12-20 15:12:42
我根据反馈更新了我的答案。 – Santosh 2011-12-21 13:15:08
如果我的更新回复解决您的问题,请让我来! – Santosh 2011-12-27 13:10:48