1. ホーム
  2. java

[解決済み] java.net.ConnectException :connection timed out: connect?

2022-03-01 18:29:52

質問

私は自分のコードでRMIを使用しています。

 import java.rmi.*;

 public interface AddServerIntf extends Remote {
  double add(double d1,double d2) throws RemoteException;
 }


import java.rmi.*;
import java.rmi.server.*;

public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
  public AddServerImpl() throws RemoteException {
  }

 public double add(double d1,double d2) throws RemoteException {
  return d1+d2;
 }
}  


import java.net.*;
import java.rmi.*;

public class AddServer {
   public static void main(String args[]) {
    try {
     AddServerImpl addServerImpl=new AddServerImpl();
     Naming.rebind("AddServer",addServerImpl);
    }  catch(Exception exc) {
          System.out.println(exc);
       }
   }
}


import java.rmi.*;
public class AddClient {
  public static void main(String args[]) {
     try {
       String Url="rmi://"+args[0]+"/AddServer";
       AddServerIntf addServerIntf=(AddServerIntf)Naming.lookup(Url);
       System.out.println("The first number is "+args[1]);
       double d1=Double.valueOf(args[1]).doubleValue();
       System.out.println("The second number is: "+args[2]);
       double d2=Double.valueOf(args[2]).doubleValue();
       System.out.println("The Sum is: "+addServerIntf.add(d1,d2));
     }  catch(Exception exc) {
         System.out.println(exc);
       }
   }
 }

以上、4つの.javaファイルを書きました。

次に、これらのファイルをすべてコンパイルして stub を使って rmic AddServerImpl . その後、サーバ側で rmi レジストリを起動します。 start rmiregistry . 次に、サーバーを起動します。 java AddServer で、最後にクライアントが java AddClient 27.60.200.80 5 9 . しかし、何も起こらない

クライアント側でスローされる例外は java.net.ConnectException : connection timed out : connect

どのような理由で、どのように解決すればよいのでしょうか?

クライアントマシン上では、以下の .class ファイルがあります。 AddClient.class AddServerImpl.class AddServerImpl_Stub.class で、サーバー側では AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class

どのように解決するのですか?

エラーメッセージによると、「接続がタイムアウトしました。これは、リクエストがある(デフォルトの)時間枠内に応答を得られなかったことを意味します。応答が得られなかった理由は、以下のいずれかである可能性があります。

  • a) IP/ドメインまたはポートが正しくない
  • b) そのIP/ドメインまたはポート(つまりサービス)が停止している
  • c) IP/ドメインが応答するのに既定のタイムアウトより長くかかっている
  • d) ファイアウォールが、使用しているポートへのリクエストまたはレスポンスをブロックしている。
  • e) その特定のホストへのリクエストをブロックしているファイアウォールがある場合
  • f) インターネットアクセスがダウンしている

ISPによるファイアウォール、ポートまたはIPのブロッキングが行われている場合がありますのでご注意ください。