Я могу знать, какой порт используется Java соединение RMI?
Если я хочу подключить клиентское приложение Java к серверному приложению Java с помощью соединения RMI, какой порт я должен открыть в машине сервера так, чтобы клиентское приложение могло соединиться с ним?
Я хочу настроить брандмауэр в машине сервера, но я не знаю, какой порт я должен открыть.
RMI обычно не работает через брандмауэр, поскольку он использует непредсказуемые порты (он запускается на 1099, а затем запускается со случайным портом после этого).
В таких ситуациях обычно необходимо использовать туннелирование RMI через HTTP, что хорошо описано здесь .
В RMI в отношении портов задействованы два различных механизма:
1) По умолчанию реестр RMI использует порт 1099
2) Клиент и сервер (заглушки, удаленные объекты) обмениваются данными через случайные порты, если только фиксированный порт был указан при экспорте удаленного объекта. Связь запускается через фабрику сокетов, которая использует 0 в качестве начального порта, что означает «использовать любой доступный порт» в диапазоне от 0 до 65535.
Обычно порт на сервере устанавливается с помощью команды rmiregistry. Вы можете установить порт в командной строке или по умолчанию будет 1099