В Java вы можете использовать Socket
и ServerSocket
, чтобы получить двунаправленный канал для связи между двумя процессами. Но только один из них должен иметь ServerSocket и рассматривается как «сервер», а другой - как «клиент», являющийся сервером, который должен быть доступен первым. Итак, есть ли способ сделать оба пэра одним и тем же кодом? Я имею в виду, приложения клиент-сервер, сервер должен ждать клиентов:Сокет Java «peer» для одноранговой связи
ServerSocket serverSocket = new ServerSocket(port);
Socket client = serverSocket.accept();
тогда клиент должен подключиться к серверу:
Socket socket = new Socket(host, port);
А если нет активного сервера, клиентский код не работает.
Мой вопрос в том, есть ли способ заставить обоих пэров использовать клиентский код, чтобы ждать появления другого хоста, чтобы неважно, какой из них пришел первым.
Чего вы хотите достичь? Кажется, это проблема XY! Опишите, что вы разрабатываете? –
@Am_I_Helpful Может быть, это проблема XY. Я разрабатываю игру, но мой вопрос просто для любопытства. – user4052054
Пробовали ли вы JXTA framework? –