1 つのサーバーと 2 つのクライアントの間で 2 つの通信を確立しようとしています。これは、すべてのプログラムが同じマシンで実行されている場合は非常にうまく機能しますが、LAN ネットワークを使用しようとすると機能しません。エラーが発生しました:
java.rmi.ConnectException: Connection refused to host: 192.168.1.24; nested exception is:
java.net.ConnectException: Connection timed out: connect
サーバーコードは次のとおりです。
public class Server{
private Game partie; // The class Game extends UnicastRemoteObject and implements ServerInterface
public Server() throws RemoteException {
System.setProperty("java.rmi.server.hostname", "192.168.1.24");
partie = new Game();
LocateRegistry.createRegistry(1099);
try{
Naming.rebind("Server", partie);
}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String argv[]) throws RemoteException{
new Server();
}
}
クライアント コードのコンストラクタは次のとおりです。
public Client(String aName, String aServerAdress) throws RemoteException {
super();
name = aName;
ServerAdress = aServerAdress; // = "192.168.1.24"
theRegistry = LocateRegistry.getRegistry(ServerAdress);
try {
serverInterface = (ServerInterface) theRegistry.lookup("Server");
} catch (NotBoundException e1) {
e1.printStackTrace();
}
try {
theRegistry.bind(name, this); // For two-way communication
} catch (AlreadyBoundException e) {
e.printStackTrace();
}
serverInterface.registerClient(name);
}
registerClient(String name) コードはおおよそです (Game クラス内):
cd_client = (ClientInterface) Naming.lookup("rmi://127.0.0.1/" + name);
すべてのファイアウォールが無効になっています。
私はこの問題に何時間も取り組んできましたが、何が問題なのかまだわかりません。少しでもお役に立てれば本当に幸いです。ありがとうございました