Как лучше всего обновить IP-адрес серверного сокета для клиентов? - PullRequest
0 голосов
/ 06 августа 2020

Я программирую небольшой пример сервера с сокетами в Java.

В настоящее время я использую это для тестирования:

server= new Socket(InetAdress.getByName("127.0.0.1"),3333)

, но я планирую переместить его в мой Raspberry Pi.

К сожалению, у меня нет статического c IP-адреса.

Как правильно обновить IP-адрес в коде?

Я думал о том, чтобы сохранить его на веб-сервере и получить к нему доступ через API, но это звучит не очень безопасно и может замедлить мой код.

1 Ответ

0 голосов
/ 07 августа 2020

Во-первых, использование InetAdress.getByName() избыточно. Socket имеет конструктор, который принимает String в качестве входных данных:

server = new Socket("127.0.0.1", 3333)

Тем не менее, вы должны зарегистрировать stati c доменное имя для своего сервера и установить его записи DNS так, чтобы они указывали на ваш IP сервера. Затем клиенты могут использовать это доменное имя для подключения к серверу вместо прямого использования IP-адреса:

server = new Socket("mydomain", 3333)

Если ваш сервер не имеет статического c IP, есть много бесплатных и дешевых Доступны службы «Dynami c DNS», которые позволяют обновлять ваш домен с использованием вашего текущего IP-адреса при его изменении (обычно с использованием автоматизированных инструментов для упрощения процесса обнаружения и обновления).

Если сервер находится за маршрутизатором, многие маршрутизаторы имеют встроенную поддержку для обновления различных служб DynDNS за вас. Если ваш маршрутизатор поддерживает это, вы можете настроить его с помощью информации вашей учетной записи DynDNS, чтобы он мог автоматически обновлять домен при изменении его WAN IP.

...