Обнаружение сетевых служб не является типом службы обнаружения

Я хочу найти сервер в своей локальной сети через устройство Android. Я могу найти его, используя службу NSDManager с типом службы сервера (например, _workstation._tcp - это тип службы).

В моей локальной сети есть Wi-Fi-маршрутизатор и Wi-Fi-повторитель, оба имеют разные SSID, но один и тот же пароль. Репитер Wi-Fi подключен к роутеру. Ретранслятор Wi-Fi имеет тот же диапазон IP-адресов, что и маршрутизатор.
Например, 192.168.0.1 — это шлюз моего маршрутизатора. IP сервера 192.168.0.100. IP-адрес, назначенный ретранслятору Wi-Fi, — 192.168.0.101, а устройству, подключенному к ретранслятору Wi-Fi, — 192.168.0.102.

Когда устройство Android подключено к маршрутизатору, NDSManager служба, которая запускается в приложении, обнаруживает тип службы сервера и предоставляет информацию о сервере. Выводится следующее:

Example [xx:xx:xx:xx:xx:xx]

Где пример — локальное имя хоста сервера, а [xx:xx:xx:xx:xx:xx] — mac-адрес сервера.

Но когда устройство подключено к ретранслятору Wi-Fi, и я хочу найти тот же сервер то он не обнаруживается службой NSDManager. Ничего не показывает.
Почему это произошло? Является ли NSDManger правильным методом / функциональностью для поиска сервера в локальной сети? если нет то как мне найти сервер в локальной сети?


person Mangesh Sambare    schedule 08.06.2016    source источник
comment
Это то, что вы ищете - stackoverflow.com/questions/4464207/?   -  person user755499    schedule 08.06.2016
comment
Проверьте, видны ли трансляции ваших устройств на сервере (запустите tcpdump/Wireshark)   -  person Jonas Köritz    schedule 08.06.2016
comment
@ user755499: спасибо, моя проблема решена   -  person Mangesh Sambare    schedule 08.06.2016
comment
@sam - как это решается, не могли бы вы поделиться подробностями, пожалуйста? Из общей ссылки SO?   -  person user755499    schedule 09.06.2016
comment
@ user755499 - записать UDP сокет на сервер, порт которого постоянно открыт. а затем я реализовал тот же код с некоторыми изменениями ссылки, которой вы поделились в моем приложении. Когда приложению требуется IP-адрес сервера, приложение открывает порт сокета UDP и отправляет широковещательный адрес через UDP. но здесь вы должны поддерживать один и тот же номер порта в приложении и на сервере.   -  person Mangesh Sambare    schedule 09.06.2016