Как мое устройство находит сервер

Мне нужно создать приложение для связи между моим телефоном Android (клиентом) и приложением на моем ПК (сервере) через сокеты TCP/IP. Когда пользователь запускает приложение, мне бы хотелось, чтобы оно автоматически обнаруживало доступные серверы, работающие по одному и тому же Wi-Fi.

Мой вопрос: - Как приложение на моем телефоне находит сервер без необходимости ввода IP-адреса сервера.

Благодарю.

1 ответ

Решение
  • Является ли программа, установленная на моем ПК, Сервером?

Невозможно узнать наверняка, не увидев их исходный код, но я бы поспорил, что компонент Windows действует как сервер, прослушивая запросы и отправляя ответы. Я сомневаюсь, что это сервер, похожий на HTTP-сервер; Вероятно, это просто использование сокетов TCP/IP с пользовательским протоколом.

  • Как приложение на моем телефоне обнаружило мой компьютер без необходимости ввода IP-адреса?

Возможно, он отправил UDP-сообщение на широковещательный IP- адрес. Программа для ПК будет прослушивать это широковещательное сообщение и отвечать "вот я, на этом IP-адресе". Используя широковещательный адрес, приложение не должно делать ничего более сложного, чем сканирование сети.

Посмотрите эту ссылку: Адрес трансляции - Википедия

  • Передает ли сервер свое присутствие через сеть Wi-Fi?

Более вероятно, что устройство Android делает это при запуске приложения.

Опять же, не видя их исходного кода, вы не можете быть на 100% уверены, но, учитывая то, как написаны эти типы программ, это наиболее вероятные ответы.

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