Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇RMI“;“连接被拒绝/超时”;_Java_Connection_Rmi - Fatal编程技术网

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

Java 爪哇RMI“;“连接被拒绝/超时”;,java,connection,rmi,Java,Connection,Rmi,在阅读Java和RMI时,我曾想过制作一个小型原型,但由于某种原因,我无法让它工作 我启动服务器:没问题 我启动客户机:没有即时问题。 它需要很长时间才能“找到”服务器(两者都在我的本地计算机上),当它找到服务器并想要执行某个功能时,我突然出现以下错误: Connection refused to host: 25.71.177.149; nested exception is: java.net.ConnectException: Operation timed out (Connectio

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

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

Connection refused to host: 25.71.177.149; nested exception is: 
java.net.ConnectException: Operation timed out (Connection timed out)
Connection refused to host: 192.168.10.248; nested exception is: 
java.net.ConnectException: Operation timed out (Connection timed out)
更新:重新启动MacBook后,出现以下错误:

Connection refused to host: 25.71.177.149; nested exception is: 
java.net.ConnectException: Operation timed out (Connection timed out)
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

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;

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

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


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

的连接这里讨论的IP不是本地IP。您试图连接到哪个IP?本地,因为它是本地协议。在您的整个工作区中搜索,此IP地址来自哪里?或者这是您的公共ip?我已经检查了我的
/etc/hosts
文件,但它是“空的”(除了默认记录之外没有其他记录),当我完全断开我的机器与RMI FAQ的webSee项目A.1的连接时,它也会这样做。注意:这里没有“拒绝连接”。存在“连接被拒绝”和“连接超时”。您必须准确地报告错误消息,并且无论何时在引号中添加某个内容,都要确保它是一个准确的引号,不仅在引号中,而且在生活中也是如此。当我输入或忽略
127.0.0.1
时,也会发生同样的情况。除了将客户端连接设置为
127.0.0.1
,您还可以尝试使用此参数重新启动JVM吗
-Djava.rmi.server.hostname=127.0.0.1
这可能会覆盖绑定IP。愚蠢的问题。。。你试过把它关掉再打开吗?我刚刚将您的所有代码导入到我的工作区,服务器和客户端都在这里工作,没有任何问题。我已多次重新启动代码,因此知道更改主机名或忽略主机名无关紧要,但我可以尝试重新启动我的机器。。。给我一个提示:
连接拒绝主机:192.168.10.248;嵌套异常为:java.net.ConnectException:操作超时(连接超时)