Java RMI连接使用哪个端口?

问题描述 投票:21回答:9

我可以知道Java RMI连接使用哪个端口吗?

如果我想使用RMI连接将Java客户端应用程序连接到Java服务器应用程序,我需要在服务器计算机上打开哪个端口以便客户端应用程序可以连接到它?

我想在服务器计算机上设置防火墙,但是我不知道应该打开哪个端口。

java connection rmi firewall
9个回答
24
投票

RMI通常无法在防火墙上工作,因为它使用不可预测的端口(它始于1099,然后再使用随机端口运行。)>]

在这种情况下,通常需要借助HTTP来传送RMI隧道,这在here中有很好的描述。


15
投票

到目前为止所有答案都是错误的。注册表通常使用端口1099,但是您可以对其进行更改。但这还不是故事的结局。远程对象也使用端口,不一定使用1099。


10
投票

在RMI中,关于端口,涉及两种不同的机制:


3
投票

您通常使用rmiregistry命令在服务器上设置端口。您可以在命令行上设置端口,否则它将默认为1099


2
投票

如果您可以修改客户端,则将其打印出远程参考,您将看到它正在使用的端口。例如:


0
投票

取决于实现RMI的方式,可以设置注册表端口(注册表是“唯一的服务点”)。如果未设置显式端口,则默认情况下,注册表将采用端口1099。在某些情况下,您有防火墙,并且防火墙不允许您的rmi-client看到注册表后面的存根和对象,因为这种情况是在随机端口,注册表使用的其他端口以及该端口上运行的被防火墙阻止了-当然。如果使用RmiServiceExporter配置RmiServer,则可以使用rmiServiceExporter.setServicePort(port)方法固定rmi端口,然后在防火墙中打开此端口。


-1
投票

端口在这里可用:java.rmi.registry.Registry.REGISTRY_PORT(1099)


-1
投票

java.rmi.registry.Registryjavadoc


-1
投票

参考上面的其他答案,这是我的观点-

客户端和服务器端都涉及端口。

© www.soinside.com 2019 - 2024. All rights reserved.