ниже - статический метод проверки того, находится ли на другом сервере RMI в сети, я в основном вызываю метод, который, если он отвечает true, означает, что соединение включено, если оно не отвечает и вместо этого дает исключение, это означает, что что-то не так. Есть ли лучший способ сделать это? И есть ли лучший способ ускорить процесс? Если есть связь, он возвращается со значением быстро, но если это не так, то требуется.. Лучший способ проверить подключение 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;
}
Ваш подход, похожий на ping, кажется мне разумным. – Anonymous