Интересно, как я могу обнаружить LAN-серверы.Adobe Air - Как обнаружить локальные серверы (прослушивание определенного порта)
Я сделал приложение клиент/сервер, и все это работает нормально, но вам нужно вручную ввести IP-адрес сервера.
В настоящее время я пытаюсь использовать DatagramSocket
на клиенте/сервере. Сервер отправит пакет, содержащий его IP-адрес, чтобы клиент мог подключиться к этому адресу. Пакет отправляет его на свой локальный широковещательный IP-адрес (192.168.1.255) порт 4444.
Клиент будет слушать порт 4444. Затем получите пакет.
Это работает, если я нахожусь на одном компьютере (так что ничего плохого в моем коде), но не тогда, когда я пробую его на другом компьютере и пытаюсь подключиться к своему компьютеру.
Я не знаком с сетью, поэтому я надеялся, что кто-то сможет объяснить мне, как это сделать должным образом.
Кроме того, в радиовещании AIR на 255.255.255.255 не поддерживается: Note: Sending data to a broadcast address is not supported.
source
Я пытаюсь реализовать это. Простите мое невежество, но не могли бы вы объяснить, как работает subnetMask? – user5839
@ user5839 \t Да, конечно. Я реализовал это, чтобы проверить тип сети, в которой вы сейчас находитесь.Если его сеть A или B, количество отправляемых пакетов будет слишком высоким, и в результате он не сможет найти сервер. Я добавил класс network utils своим ответом. Я использую это, чтобы получить маску подсети. Вы используете его следующим образом: 'NetworkUtil.getSubnetMask (NetworkUtil.getPrefixLength());' – Duckdoom5