Java 从创建注册表操作中的自定义临时RMI端口连接

Java 从创建注册表操作中的自定义临时RMI端口连接,java,server,port,rmi,Java,Server,Port,Rmi,我正在开发一个在Windows7中使用Java6和RMI的独立应用程序 我读到的是,操作默认使用端口1099,这是完美的。以下是一些教程,我以这些代码为例: LocateRegistry.createRegistry(1099, new SocketFactory(), new SocketFactory()); Random r = new Random(); int nextPort = r.nextInt(100 + 1) + 50000; PowerServiceImpl powe

我正在开发一个在Windows7中使用Java6和RMI的独立应用程序

我读到的是,操作默认使用端口1099,这是完美的。以下是一些教程,我以这些代码为例:

LocateRegistry.createRegistry(1099, new SocketFactory(), new SocketFactory());

Random r = new Random();

int nextPort = r.nextInt(100 + 1) + 50000;

PowerServiceImpl powerServiceImpl = new PowerServiceImpl(nextPort);

Naming.rebind("rmi://10.1.1.100:1099/PowerService", powerServiceImpl);
当我创建注册表时,我分配默认值,并在1099端口中成功使用它,如图所示:

在图中,显示了1099作为在“服务器”中打开的端口和一个随机端口(),该端口与服务器建立连接

我想要实现的是将自定义端口设置为临时端口(,而不是图像中的53559,例如,它可能是50005),以建立与服务器的连接(1099)

有没有办法实现这一点

我错过什么了吗


感谢和问候

为什么?如果您有关于出站端口号的防火墙规则,则应将其删除。它不增加任何安全性,也不增加应用程序的可实现性。具体来说,您将无法在两分钟内建立连接。注意,您不需要随机数生成器。只需指定零。我不知道,
createRegistry()
action'中的“与此有关”。它不会创建任何连接。目标是为了安全目的而设置防火墙。随机端口用于在范围内创建端口,以便将来连接。如图所示,当调用createRegistry()方法时,它会为1099和一个临时端口创建一个连接,这个临时端口就是我想要自定义的。谢谢,我还对我的问题进行了编辑,加入了这个短暂的术语。正如我已经告诉过你的,你的目标没有实现任何真正的安全目的,它还存在我提到的另一个问题。此外,您将无法在不同的线程中调用远程方法。回顾一下你的需求。你能给我推荐一些链接来阅读一些关于它的信息吗?ThanksI建议,无论是谁强加这种关于出站端口号的胡说八道,都应该(a)告知它实际上是不可实现的,(b)询问应该产生什么样的安全效益。我发表这一声明已经将近三十年了,我从来没有被告知任何答案,更不用说一个合理的答案了。如果有必要,给他们看这条线。为什么?如果您有关于出站端口号的防火墙规则,则应将其删除。它不增加任何安全性,也不增加应用程序的可实现性。具体来说,您将无法在两分钟内建立连接。注意,您不需要随机数生成器。只需指定零。我看不出
createRegistry()
action中的“操作”与它有什么关系。它不会创建任何连接。目标是为了安全目的而设置防火墙。随机端口用于在范围内创建端口,以便将来连接。如图所示,当调用createRegistry()方法时,它会为1099和一个临时端口创建一个连接,这个临时端口就是我想要自定义的。谢谢,我还对我的问题进行了编辑,加入了这个短暂的术语。正如我已经告诉过你的,你的目标没有实现任何真正的安全目的,它还存在我提到的另一个问题。此外,您将无法在不同的线程中调用远程方法。回顾一下你的需求。你能给我推荐一些链接来阅读一些关于它的信息吗?ThanksI建议,无论是谁强加这种关于出站端口号的胡说八道,都应该(a)告知它实际上是不可实现的,(b)询问应该产生什么样的安全效益。我发表这一声明已经将近三十年了,我从来没有被告知任何答案,更不用说一个合理的答案了。如有必要,向他们展示此线程。