2014-01-06 2 views
0

У меня есть .Net-сервис, который работает на компьютере локальной сети. На моем телефоне Android мне нужно найти сервер как можно быстрее и получить данные от него.Что такое быстрый способ найти сервер в локальной сети в Android

Я рассмотрел эти варианты до сих пор:

  • Scan каждый адрес и проверить, если они отвечают - это занимает около 30 секунд - не жизнеспособны
  • Используйте широковещательный адрес для отправки пингов - по умолчанию настройки Windows, отключить ICMP ping, так что это ненадежно. NOT VIABLE
  • Использование UPnp - доступен клиент Android-обнаружения, сетевой узел .Net недоступен, COM и ATL слишком сложны для реализации (нет документации, только рекомендации по интерфейсу - и это mosty, используемый маршрутизаторами и NAS) - NOT VIABLE

Что еще я должен попробовать?

ответ

0

Вот как я в конце концов сделал это:

  • Служба .Net запускает UDP слушателя в отдельном потоке
  • Андроида клиент посылает UDP широковещательный сигнал и ждет ответа
  • Если ответ содержит конкретное сообщение, это означает, что у него есть соответствующий сервер.

Используя этот подход, он работает очень быстро, занимает 1-2 секунды, чтобы обнаружить серверы.

Смежные вопросы