Мое впечатление о RMI - это как будто они разные серверы. Я пишу интерфейс как:Реестр RMI и RMI Server имеют разные номера портов?
package pack;
import java.rmi.*;
public interface AddI extends Remote
{
public int add(int x, int y) throws Exception;
}
Класс которого объект, который будет служил:
package pack;
import java.rmi.server.*;
public class AddC extends UnicastRemoteObject implements AddI
{
public AddC() throws Exception
{
super();
}
public int add(int x, int y)
{
int i = 2;
while(i>0);
return x+y;
}
}
Я хочу надстройку() метод класса выше, чтобы застрять в то время как цикл.
Я пишу программу сервера, как:
package pack;
import java.rmi.*;
public class Server
{
public static void main(String[] args) throws Exception
{
AddC obj = new AddC();
Naming.rebind("rmi://10.100.11.238:1099/ADD", obj);
System.out.println("Server Started");
}
}
Затем Клиентская программа:
package pack;
import java.rmi.*;
public class Client
{
public static void main(String[] args) throws Exception
{
AddI obj = (AddI)Naming.lookup("rmi://10.100.11.238:1099/ADD");
int n = obj.add(5, 4);
System.out.println(n);
}
}
Я начал rmiregistry в порту 1099 и запустить Nmap команду как:
$ nmap 127.0.0.1
Starting Nmap 7.01 (https://nmap.org) at 2016-11-24 15:14 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
1099/tcp open rmiregistry
Я уже в моей системе работает веб-сервер. Затем я бегу сервера программы, как:
$java pack.Server
Затем после того, как я бегу клиент в другой машине, как:
$java pack.Client
Поскольку метод Add() застрял в то время как петля так RMI сервера еще не закончена. В промежутке, если я снова запустил nmap, он не показывает лишний открытый порт.
Оба сервера разные или одинаковые?
Вы не запустили клиент, поэтому метод 'add()' не запущен, и дополнительного подключения нет. Когда вы запустите реестр как отдельный процесс, он будет использовать другой порт из удаленного объекта. – EJP
Ваш вопрос не имеет смысла. Запуск сервера перед реестром бессмысленно. Запуск Реестра и сервера без клиента не собирается сообщать вам о соединениях. Укажите свою * реальную проблему, если она есть. – EJP