在rmi连接中客户端指定一个ip地址,但程序执行中却转换成另一个地址

zxcvbn2312 2012-11-07 01:26:01
局域网中的两台电脑想通过rmi技术连接通信

服务器端>ip地址:192.168.10.28

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class RMIServer {
public static void startServer() throws RemoteException, MalformedURLException {
// 启动rmi注册服务,指定端口1099也可以直接命令行启动一个注册服务生成stub
LocateRegistry.createRegistry(1099);
// 创建远程对象一个或者多个实例
FingerGatherManage fingerGatherManage = new FingerGatherManageImpl();
// 把对象注册到另一台启动了rmi注册服务的机器
Naming.rebind("rmi:/192.168.10.28:1099/FingerGatherManage", fingerGatherManage);
System.out.println("rmi服务器启动了");
}
}


客户端>ip地址:192.168.10.8


public class RMIConnection {
public static List<List<Object>> validateUserNameAndPassword(String ip, int portNum, String userName, String password) throws MalformedURLException, RemoteException, NotBoundException {
FingerGatherManage fingerGatherManage = (FingerGatherManage) Naming
.lookup("rmi:/" + ip + ":" + portNum + "/FingerGatherManage");
List<List<Object>> result = fingerGatherManage.validateUserNameAndPassword(userName, password);
return result;
}
}

当我在客户端传入参数ip=192.168.10.28(服务器内网Ip)时,报错java.rmi.connectException:refused,而且传入的ip被转化成192.168.10.106
...全文
479 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp1992 2014-10-25
  • 打赏
  • 举报
回复
同求,碰到同样的问题,两台机器之间没用
kaivbv 2014-05-13
  • 打赏
  • 举报
回复
这个rmi怎么实现,我只能在一台电脑上实现,两台电脑就不行了
zxcvbn2312 2012-11-07
  • 打赏
  • 举报
回复
有没有人知道的啊,我在网上找了半天都是一个解决方法在服务器端加上System.setProperty("java.rmi.server.hostname","192.168.10.28")。不过加上也没用客户端还是指向了192.168.10.106
zxcvbn2312 2012-11-07
  • 打赏
  • 举报
回复
不好意思。搞错了客户端地址是192.168.10.106,为什么我访问服务器IP却访问了本机的ip呢
zxcvbn2312 2012-11-07
  • 打赏
  • 举报
回复
不好意思。搞错了客户端地址是192.168.10.106,为什么我访问客户端IP却反问了本机的ip呢
fairyhawk 2012-11-07
  • 打赏
  • 举报
回复
lookup("rmi:/" + ip + ":" + portNum + "/FingerGatherManage"); 的ip应该是 Naming.rebind("rmi:/192.168.10.28:1099/FingerGatherManage", fingerGatherManage); 这个10.28吧。
zxcvbn2312 2012-11-07
  • 打赏
  • 举报
回复
各位大哥大姐帮帮忙,谢谢
zxcvbn2312 2012-11-07
  • 打赏
  • 举报
回复
调试跟踪发现的输入的IP被转了,服务器防火墙是关闭的,通过在客户端执行cmd命令telnet 192,168.10.28(服务器ip)这个是能通的。
龙四 2012-11-07
  • 打赏
  • 举报
回复
怎么知道IP被转了 防火墙有没有屏蔽端口

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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