Лучший способ проверить подключение RMI

ниже статический метод для проверки того, находится ли RMI-сервер другой стороны в сети, я в основном вызываю метод, который, если он отвечает, это означает, что соединение включено, если он не отвечает и вместо этого выдает исключение, это означает, что что-то не так. Есть ли лучший способ сделать это? И есть ли лучший способ ускорить процесс? Если есть возможность подключения, он возвращается со значением быстро, но если нет, это занимает некоторое время.

public static boolean checkIfOnline(String ip,int port)
{
    boolean online = false;
    try {

    InetAddress ipToConnect;
    ipToConnect = InetAddress.getByName(ip);

    Registry registry = LocateRegistry.getRegistry(ipToConnect.getHostAddress(),port);
    ServerInterface rmiServer = (ServerInterface)registry.lookup("ServerImpl");

    online = rmiServer.checkStudentServerOnline();

    if(online)
    {
        System.out.println("Connected to "+ipToConnect);
    }

    } catch (RemoteException e) {

        System.out.println(e.getMessage());
        //e.printStackTrace();
        return false;
    } catch (NotBoundException e) {
        System.out.println(e.getMessage());
        //e.printStackTrace();
        return false;
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return online;

}
5
задан user1803551 9 January 2016 в 03:45
поделиться