Поиск точного устройства в локальной сети Java / Android

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

Как я могу найти компьютер в сети?

Я пробовал это в маленькой локальной сети (где все устройства, подключенные к 192.168.*.*), Используя InetAddress.getByName(ipAddress).isReachable(); но в большой сети (например, в eduroam или в моем школьном Wi-Fi) я не могу сканировать всю сеть.

Есть ли другой вариант, как соединить два устройства друг с другом, кроме использования сокетов и сканирования всей сети?

1 ответ

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

Затем, когда вам нужно подключиться к ПК на вашем устройстве Android, вы запрашиваете базу данных и определяете текущий адрес ПК, а затем подключаетесь к устройству.

Другие вопросы по тегам