2017-02-21 23 views
-1

Чтение на Java и RMI, я подумал о создании небольшого прототипа, но по какой-то причине я не могу заставить его работать.Ядро RMI «соединение отказало/таймаут»

Я запускаю сервер: нет проблем
Я запускаю клиент: нет непосредственной проблемы.
Это занимает много времени, прежде чем он «находит» сервер (как на моей локальной машине), и когда он находит сервер и хочет, чтобы выполнить функцию, я вдруг получаю эту ошибку:

Connection refused to host: 25.71.177.149; nested exception is: 
java.net.ConnectException: Operation timed out (Connection timed out) 

UPDATE: После перезагрузки MacBook, я получаю эту ошибку:

Connection refused to host: 192.168.10.248; nested exception is: 
java.net.ConnectException: Operation timed out (Connection timed out) 

Env:
Java SDK 1,8
MacOS Sierra 10.12.3

Server.java

import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 

public class server { 

    public static void main(String[] args) { 

     try { 
      Registry reg = LocateRegistry.createRegistry(1099); 
      Calc calc = new Calc(); 

      reg.rebind("calc", calc); 

      System.out.println("Server ready..."); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

} 

Client.java

import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 

public class Client { 

    public static void main(String[] args) { 

     try { 
      Registry reg = LocateRegistry.getRegistry("localhost", 1099); 

      System.out.println(req.list()[0]); // Outputs "calc" 

      ICalc calc = (ICalc) reg.lookup("calc"); 

      System.out.println("1 + 1 = " + calc.add(5,10)); 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 

    } 

} 

ICalc.java

import java.rmi.Remote; 
import java.rmi.RemoteException; 

public interface ICalc extends Remote { 

    public int add(int param1, int param2) throws RemoteException; 

} 

Calc.java

import java.rmi.RemoteException; 
import java.rmi.server.UnicastRemoteObject; 

public class Calc extends UnicastRemoteObject implements ICalc{ 

    public Calc() throws RemoteException{ 

    } 

    public int add(int param1, int param2) throws RemoteException { 
     return 0; 
    } 
} 
+0

IP-идет речь здесь не является локальным. С каким IP-адресом вы пытаетесь подключиться? – f1sh

+0

Местный, так как это локальный прото. – CreasolDev

+0

Поиск по всему рабочему пространству, откуда этот IP-адрес? Или это ваш публичный ip? –

ответ

0

Вы клиент определены для подключения к localhost , но В сообщении ror указано, что соединение было отклонено до 25.71.177.149.

Мое предположение о том, что сервер, связанный с реального локального хоста на 127.0.0.1:1099, но ваш клиент Тринг установить соединение с 25.71.177.149:1099

+0

То же самое происходит, когда я ввожу '127.0.0.1' или опускаю его. – CreasolDev

+0

В дополнение к тому, что клиентское соединение установлено в '127.0.0.1', вы также можете попробовать перезапустить JVM с этим аргументом? '-Djava.rmi.server.hostname = 127.0.0.1' Это может переопределить IP-адрес привязки. –

+0

Также не работал – CreasolDev

 Смежные вопросы

  • Нет связанных вопросов^_^