有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java RMI“连接被拒绝/超时”

在阅读Java和RMI时,我曾想过制作一个小型原型,但由于某种原因,我无法让它工作

我启动服务器:没问题
我启动客户:没有立即的问题
它需要很长时间才能“找到”服务器(两者都在我的本地计算机上),当它找到服务器并想要执行某个功能时,我突然出现以下错误:

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

更新:重新启动MacBook后,出现以下错误:

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

环境:
Java SDK 1.8
MacOS Sierra 10.12.3

服务器。爪哇

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());
        }
    }

}

客户。爪哇

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。爪哇

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

public interface ICalc extends Remote {

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

}   

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;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您已将客户端定义为连接到localhost,但错误消息表明连接被拒绝到25.71.177.149

    我的假设是,服务器绑定到位于127.0.0.1:1099real本地主机,但您的客户端正在尝试建立到25.71.177.149:1099的连接