Я пытаюсь внедрить игру TicTacToe. Для этого у меня есть удаленный интерфейс, реализация удаленного интерфейса и класс основного сервера. Для клиента у меня есть класс клиента.
Я сталкиваюсь с проблемой, когда клиент пытается подключиться к серверу через порт, указанный пользователем.
java.rmi.ConnectException: Connection refused to host: 172.20.143.65; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at ttt.Game.<init>(Game.java:18)
at ttt.Game.main(Game.java:67)
Это код на стороне сервера для приема в порт rmiregistry
public static int registryPort = 1099;
public static void main(String args[]) {
try {
TTT ttt = new TTT();
System.out.println("Enter port number");
Scanner sc = new Scanner(System.in);
registryPort = sc.nextInt();
//Runtime rt = Runtime.getRuntime();
//Process pr = rt.exec("start rmiregistry " + registryPort);
Registry reg = LocateRegistry.createRegistry(registryPort);
reg.rebind("TTT", ttt);
System.err.println("Server up");
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
}
Ниже приведен код на стороне клиента для подключения
public Game() throws MalformedURLException, RemoteException, NotBoundException{
game = (TTTService) Naming.lookup("TTT");
keyboardSc = new Scanner(System.in);
}
Ошибка при поиске в клиентском коде. Не в состоянии понять, что не так. Он работает, когда я устанавливаю порт по умолчанию rmi 1099. Чего-то не хватает на стороне клиента?