请问rmi的客户端和服务端不在一天机器上的时候,该如何其他客户端????

ideal2004 2006-03-11 09:32:36
rmi服务端如下;
//CalculatorServer.java
import java.rmi.Naming;

public class CalculatorServer {

public CalculatorServer() {
try {
Calculator c = new CalculatorImpl();
Naming.rebind("rmi://localhost:1099/CalculatorService", c); /////// 11111111
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
}

public static void main(String args[]) {
new CalculatorServer();
}
}

客户端源代码如下:
//CalculatorClient.java

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;

public class CalculatorClient {

public static void main(String[] args) {
try {
Calculator c = (Calculator)
Naming.lookup("rmi://localhost/CalculatorService"); // 111111
System.out.println( c.sub(4, 3) );
System.out.println( c.add(4, 5) );
System.out.println( c.mul(3, 6) );
System.out.println( c.div(9, 3) );
}
catch (MalformedURLException murle) {
System.out.println();
System.out.println("MalformedURLException");
System.out.println(murle);
}
catch (RemoteException re) {
System.out.println();
System.out.println("RemoteException");
System.out.println(re);
}
catch (NotBoundException nbe) {
System.out.println();
System.out.println(
"NotBoundException");
System.out.println(nbe);
}
catch (
java.lang.ArithmeticException ae){
System.out.println();
System.out.println("java.lang.ArithmeticException");
System.out.println(ae);
}
}
}

按照////// 111111 的方式注册后,客户端和服务器端在同一台机器上,可以运行成功。但当把客户端放在另一台机器上,却运行不成功。比如服务器端在211.83.0.111这台机器上,客户端在211.83.0.112这台机器上,该怎么改呢??盼回复!!
...全文
161 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhmt 2006-04-28
  • 打赏
  • 举报
回复
不过 不建议把rmi server暴露在公网上
zhmt 2006-04-28
  • 打赏
  • 举报
回复
把两边(C/S)的rmi://localhost:1099/CalculatorService改为
rmi://211.83.0.111:1099/CalculatorService
基本就差不多了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧