Как мое устройство находит сервер
Мне нужно создать приложение для связи между моим телефоном Android (клиентом) и приложением на моем ПК (сервере) через сокеты TCP/IP. Когда пользователь запускает приложение, мне бы хотелось, чтобы оно автоматически обнаруживало доступные серверы, работающие по одному и тому же Wi-Fi.
Мой вопрос: - Как приложение на моем телефоне находит сервер без необходимости ввода IP-адреса сервера.
Благодарю.
1 ответ
- Является ли программа, установленная на моем ПК, Сервером?
Невозможно узнать наверняка, не увидев их исходный код, но я бы поспорил, что компонент Windows действует как сервер, прослушивая запросы и отправляя ответы. Я сомневаюсь, что это сервер, похожий на HTTP-сервер; Вероятно, это просто использование сокетов TCP/IP с пользовательским протоколом.
- Как приложение на моем телефоне обнаружило мой компьютер без необходимости ввода IP-адреса?
Возможно, он отправил UDP-сообщение на широковещательный IP- адрес. Программа для ПК будет прослушивать это широковещательное сообщение и отвечать "вот я, на этом IP-адресе". Используя широковещательный адрес, приложение не должно делать ничего более сложного, чем сканирование сети.
Посмотрите эту ссылку: Адрес трансляции - Википедия
- Передает ли сервер свое присутствие через сеть Wi-Fi?
Более вероятно, что устройство Android делает это при запуске приложения.
Опять же, не видя их исходного кода, вы не можете быть на 100% уверены, но, учитывая то, как написаны эти типы программ, это наиболее вероятные ответы.