Java RMI服务器在哪里侦听



我正在阅读一些与Java RMI相关的教程(其中一个在这里),我发现自己几乎不了解RMI服务器。

我启动一个JavaMain程序,创建一个UnicastRemoteObject,然后将对象绑定到RMI注册表服务器中(按照教程进行操作)。之后,Java主程序在绑定之后退出。

UnicastRemoteObject的父类是RemoteServer,我假设我创建的每个远程对象(也是UnicastRemoteObject)都是在一个匿名端口上侦听的Java进程(JVM)

那么,如果我有10个远程对象,那么我就有10个端口被占用来为客户端远程调用服务?这听起来不对,但我真的找不到实际建立的RMI服务器在哪里,以及它将占用多少端口用于远程客户端调用?

有人能详细解释一下这是怎么回事吗?

我启动一个Java Main程序,创建一个UnicastRemoteObject,然后将对象绑定到RMI注册表服务器中(按照教程操作)。之后,Java主程序在绑定之后退出。

不,不会。只要远程对象保持导出状态,它就会保持活动状态。

UnicastRemoteObject的父类是RemoteServer,我假设我创建的每个远程对象(也是UnicastRemoteObject)都是在一个匿名端口上侦听的Java进程(JVM)。

否。它是当前JVM中存在的一个Java对象。不是一个单独的过程。

那么,如果我有10个远程对象,那么我就有10个端口被占用来为客户端远程调用服务?

否。除非你指定了一个端口,否则你会得到一个系统分配的端口。通常,这个端口会在你从这个JVM导出的所有远程对象之间共享。

这听起来不对

不是。

但我真的找不到实际建立的RMI服务器在哪里,以及它将占用多少端口用于远程客户端调用?

它深入RMI实现类内部。

相关内容

  • 没有找到相关文章

最新更新