我在代碼中使用RMI:java.net.ConnectException:連接超時:connect?
import java.rmi.*;
public interface AddServerIntf extends Remote {
double add(double d1,double d2) throws RemoteException;
}
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
public AddServerImpl() throws RemoteException {
}
public double add(double d1,double d2) throws RemoteException {
return d1+d2;
}
}
import java.net.*;
import java.rmi.*;
public class AddServer {
public static void main(String args[]) {
try {
AddServerImpl addServerImpl=new AddServerImpl();
Naming.rebind("AddServer",addServerImpl);
} catch(Exception exc) {
System.out.println(exc);
}
}
}
import java.rmi.*;
public class AddClient {
public static void main(String args[]) {
try {
String Url="rmi://"+args[0]+"/AddServer";
AddServerIntf addServerIntf=(AddServerIntf)Naming.lookup(Url);
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));
} catch(Exception exc) {
System.out.println(exc);
}
}
}
這些是用4個.java文件。
接下來我編譯所有這些files.Then我創建一個stub
使用rmic AddServerImpl
。之後,我使用start rmiregistry
在服務器端啓動rmi註冊表。然後我開始使用java AddServer
服務器,最後客戶端使用java AddClient 27.60.200.80 5 9
。 但沒有任何反應
例外是在客戶端拋出是java.net.ConnectException : connection timed out : connect
的原因是什麼?如何解決這個問題?
在客戶端機器,這些有以下幾種.class文件AddClient.class AddServerImpl.class AddServerImpl_Stub.class
和服務器端AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class
郵政堆棧跟蹤的異常,如果有的話 – 2011-04-14 11:38:37
最簡單的解釋:你服務器的IP地址不是你認爲的那樣 – Anon 2011-04-14 11:41:07
@Anon你怎麼這麼說? – saplingPro 2011-04-14 11:52:31