当前位置: 技术问答>java相关
初学者的问题:RMI使用的几个问题。谢谢!
来源: 互联网 发布时间:2017-04-24
本文导语: ——服务器端的处理 //将远程对象实例绑定到rmi:///Rem上 Naming.rebind("rmi:///MyRemTest",我的远程对象实例); ——客户端的处理 //通过URL在远程主机上查找对象,并把它转化为本地接口MyRem类型 MyRem remObject=(MyRem)Naming.look...
——服务器端的处理
//将远程对象实例绑定到rmi:///Rem上
Naming.rebind("rmi:///MyRemTest",我的远程对象实例);
——客户端的处理
//通过URL在远程主机上查找对象,并把它转化为本地接口MyRem类型
MyRem remObject=(MyRem)Naming.lookup("rmi://" +远程主机IP +"/MyRemTest");
——我的问题是:
(1)远程对象实例绑定到底是什么意思?就是用“rmi:///MyRemTest”来代表远程对象吧?好像有点注册表或者配置的意思。
(2)数据“rmi:///MyRemTest”保存到哪里去了?
(3)客户端是跑到服务器的内存中去寻找那个远程对象吗?敬请高手详细解释一下客户端到底是如何找到那个远程对象的。
//将远程对象实例绑定到rmi:///Rem上
Naming.rebind("rmi:///MyRemTest",我的远程对象实例);
——客户端的处理
//通过URL在远程主机上查找对象,并把它转化为本地接口MyRem类型
MyRem remObject=(MyRem)Naming.lookup("rmi://" +远程主机IP +"/MyRemTest");
——我的问题是:
(1)远程对象实例绑定到底是什么意思?就是用“rmi:///MyRemTest”来代表远程对象吧?好像有点注册表或者配置的意思。
(2)数据“rmi:///MyRemTest”保存到哪里去了?
(3)客户端是跑到服务器的内存中去寻找那个远程对象吗?敬请高手详细解释一下客户端到底是如何找到那个远程对象的。
|
RMI最终还得通过网络端口来实现它的绑定/查找功能。
1.在服务端,打开RMI指定的端口;并且进行了"rmi:///MyRemTest"注册,客户连接信息只有符合服务端注册的信息,服务端才处理。
2.这个问题得问sun才行。
3.是的。通过服务端打开的端口,用socket连接,然后验证。
RMI是一种服务,非三语两言能说清楚。
1.在服务端,打开RMI指定的端口;并且进行了"rmi:///MyRemTest"注册,客户连接信息只有符合服务端注册的信息,服务端才处理。
2.这个问题得问sun才行。
3.是的。通过服务端打开的端口,用socket连接,然后验证。
RMI是一种服务,非三语两言能说清楚。
|
还要说明一点
在启动服务器之前,必须启动rmiregistry,它是真正负责RMI名字解析的,而不是JVM。通过rebind,JVM使用RMIREGISTRY的1099端口将一个名字与一个对象的实例进行绑定。
而客户与服务器之间实际上是通过STUB-SKELETON进行代理的。客户端实际上就是通过服务器的1099端口得到远程对象的引用的。
如果要深究,那就去SUM。COM吧
在启动服务器之前,必须启动rmiregistry,它是真正负责RMI名字解析的,而不是JVM。通过rebind,JVM使用RMIREGISTRY的1099端口将一个名字与一个对象的实例进行绑定。
而客户与服务器之间实际上是通过STUB-SKELETON进行代理的。客户端实际上就是通过服务器的1099端口得到远程对象的引用的。
如果要深究,那就去SUM。COM吧