我在遠程方法調用期間對呼叫序列有許多疑問。 以下是我讀取的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