我对UnicastRemoteObject类有一些疑问。 请使用以下代码:
public class MaxImpl extends UnicastRemoteObject implements Max{
public MaxImpl () throws RemoteException {}
@Override
public int getMax(int[] A) throws RemoteException {
// ...
return max;
}
public static void main(String[] args) {
try {
LocateRegistry.createRegistry(1099);
MaxImpl max = new MaxImpl();
Naming.rebind("maximum", max);
} catch (RemoteException ex) {
System.out.println(ex.getMessage());
} catch (MalformedURLException ex) {
System.out.println(ex.getMessage());
}
}
}
以下陈述的作用如下:
MaxImpl max = new MaxImpl();
以上代码无限期执行,为什么?我想有一个循环:
while(true){ ServerSocket server = ...; }
答案 0 :(得分:1)
生成存根。
没有
生成存根并创建一个远程对象,以便它可以从远程客户端接收其远程方法的调用。
没有
导出远程对象,包括:
请注意(1(和(2)可以使用相同的端口在远程对象之间共享,因此可能不会像上面那样精确地发生。
现在(2)处的线程的存在将阻止JVM退出。