2015-03-23 1 views
1

Я создаю клиент/серверное приложение, которое должно работать в локальной сети.Сокет для динамического IP-адреса

Сначала с RMI зарегистрировать пользователь их я не знаю, что (IP?), Это вопрос :)

После этого я создаю ServerSocket и ждет принять().

Теперь клиент (или, лучше, сервер .. у которого есть зарегистрированный пользователь) хочет установить соединение, но ... что, если IP-адрес был изменен?

Есть способ «зарегистрировать что-то» на сервере, если при изменении IP все продолжают работать?

Я пытаюсь объяснить это лучше: я не могу зарегистрировать IP-адрес и позже подключиться к нему, потому что если изменение IP-адреса я потерял ссылку. Я хотел бы зарегистрировать «что-то», которое является idipendente из IP.

Надеюсь, вы понимаете мой вопрос ..

ответ

3

Ответ заключается в использовании DNS. DNS является соответствующим механизмом де-ссылки для получения одного или нескольких IP-адресов для данного имени.

+1

не могли бы вы дать мне пример? – Mistre83

+0

Если я использую getInetAddresses(). NextElement(). GetHostName(), чтобы получить имя хоста, я получаю что-то вроде этого fe80: 0: 0: 0: 7aca: 39ff: febb: 3b0b% en1, а когда я создаю сокет, это вызывает exception: UnknownHostException: нет такого интерфейса en1. У меня есть компьютер, подключенный к локальной сети, а другой компьютер подключен к Wi-Fi (конечно, они находятся в одной сети) – Mistre83

+0

Во-первых, вам не нужно имя хоста. Просто передайте сам InetAddress и номер порта соответствующему конструктору: открытый Socket (адрес InetAddress, int port) – cpurdy

0

Вы должны DNS, который может перевести имя хоста, на определенный IP-адрес. Конечно, я предлагаю вам исключить suo, чтобы проверить, жив ли хост. У вас есть и другое решение; вы можете настроить фиксированный IP-адрес в локальной сети непосредственно с сервера или с помощью управления страницей маршрутизатора (если вы используете инфраструктуру в локальной сети). Если вы удалите его удаленно, вам придется использовать DDNS, где вы можете использовать DNS для динамического IP.

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