Клиент-серверное приложение для Android / Java с использованием динамического IP - PullRequest
0 голосов
/ 15 марта 2011

Итак, я хочу создать приложение Android, которое будет отправлять данные (в данном случае координаты) с моего устройства Android в приложение Java на моем MacBook через Wi-Fi.Я подумал, что для работы буду использовать TCP-сокеты, и мое Android-устройство будет работать как клиент, а мой MacBook - как сервер.Моя проблема в том, что на самом деле жесткое кодирование IP-адресов не является идеальной техникой для этого, есть ли способ обойти это?Является ли использование Sockets лучшим способом сделать такое приложение?

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

Не лучший способ сделать это, но вместо статических ips используйте Динамический DNS-сервис .

0 голосов
/ 15 марта 2011

Вы можете использовать динамический DNS .При использовании динамического DNS клиент (Macbook) регистрирует свой IP-адрес на DNS-сервере, который затем передает его другим клиентам (Android) через обычные запросы DNS.

Однако я бы рекомендовал отказаться от этой настройки (сервер на ноутбуке).с DynDNS):

  1. Ваш ноутбук может быть не всегда доступен из-за личных причин или из-за сетевых подключений.
  2. Трансляция сетевых адресов (NAT): большинство клиентских сетей (wlan, home)сети, даже мобильные сети) используют эту технологию, которая предотвращает инициирование TCP-соединений из Интернета во внутреннюю сеть (входящие соединения).Этого можно избежать с помощью переадресации портов, но это можно сделать только в сетях, которые вы контролируете.

Вместо этого я бы предложил использовать виртуальный частный сервер (Linode) или облачное решение.

В качестве альтернативы, если вы не хотите настраивать / управлять сервером, вы можете использовать существующее решение для обмена данными: электронная почта, twitter, xmpp и т. Д.

...