Как искать адаптивные серверы сокетов на определенном порте (Как подключиться к серверу по заданному порту, но без IP-адреса)? - PullRequest
0 голосов
/ 25 июня 2019

Имея два (или более) компьютера (устройства), подключенных через, скажем, маршрутизатор, можно ли подключиться к серверу сокетов на данном порту, не зная его IP-адрес, или, по крайней мере, получить список всех серверов на этом порту порт (и пообщаться с каждым, чтобы узнать, ищу ли я его)?

Я должен добавить, что я новичок в программировании сокетов Java (и программировании сокетов в целом) и использовал это только для инициализации моего клиентского сервера:

    Socket socket = new Socket(serverIP, serverPort);

Мне удалось установить связь между клиентом и сервером на двух разных компьютерах, подключенных беспроводным маршрутизатором, и я пытаюсь реализовать это на двух устройствах Android. Проблема в том, что IP-адрес - это не просто вопрос пользователя. Вот почему я хочу знать, как подключиться к серверу через порт, который я знаю, не имея его IP, или найти все IP-адреса, которые активны на этом порту (возможно, чтобы попытаться связаться с каждым и посмотреть, является ли один из них тем, который я ищу для)

1 Ответ

0 голосов
/ 25 июня 2019

Я не знаю точного решения для вас, как реализовать его с помощью сокетов Java, но моей первой мыслью было попытаться передать конкретное сообщение с сервера, и когда клиенты, подключенные к той же сети, могут получить это сообщение и они будут знать, откуда он взялся. (или наоборот)

Но многоадресная рассылка - лучший подход, потому что:

«Вещание неэффективно, поскольку пакеты отправляются на все узлы в сети, независимо от того, заинтересованы ли они в получении сообщения или нет. Это может быть пустой тратой ресурсов». см .: https://www.baeldung.com/java-broadcast-multicast

Может быть, этот репозиторий GitHub может быть вам полезен: https://github.com/jbrucker/server-discovery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...