Поиск точного устройства в локальной сети Java / Android
Я разрабатываю приложение Java, которое должно прослушивать определенный порт на компьютере с помощью сокетов. Другое приложение, которое будет работать на устройстве Android, подключенном к тому же WiFi, должно найти этот компьютер с моей программой Java.
Как я могу найти компьютер в сети?
Я пробовал это в маленькой локальной сети (где все устройства, подключенные к 192.168.*.*), Используя InetAddress.getByName(ipAddress).isReachable();
но в большой сети (например, в eduroam или в моем школьном Wi-Fi) я не могу сканировать всю сеть.
Есть ли другой вариант, как соединить два устройства друг с другом, кроме использования сокетов и сканирования всей сети?
1 ответ
Я не уверен, что понимаю все ваши системные требования, но я думаю, что вы можете создать очень маленькую базу данных на хостинг-сайте (например, такую), чтобы ваш компьютер периодически загружал свой частный IP-адрес в эту базу данных.
Затем, когда вам нужно подключиться к ПК на вашем устройстве Android, вы запрашиваете базу данных и определяете текущий адрес ПК, а затем подключаетесь к устройству.