Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
#1

Android Клиент-Сервер подключение к серверу в сети Wi-Fi - Android

19.10.2015, 21:18. Просмотров 989. Ответов 12
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане!
Ничего не смог найти по данному вопросу или искал не так или не там, направьте в нужном направлении пожалуйста!

Кратко опишу задачу:

Есть два устройства Android - клиент и сервер. По-изучал теорию, по-практиковался, вроде бы всё понятно, но есть один вопрос на который ни как не могу найти ответ!

Как мне подключиться к серверу, если он находится в сети Wi-Fi, то есть подключён к интернету через роутер?

Простейшая ситуация.
Сервер сидит дома и подключён к домашней сети Wi-Fi. Клиент шарахается по улице и хочет связаться с сервером, но КАК? Как добраться до того волшебного IP, под которым сидит сервер в данный момент?

Надеюсь это вообще возможно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 21:38     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #2
EvgenFree, обычно покупается белый IP (для дома), стоило например у нас 200р. в месяц.
Проверить какой сейчас IP можно на сайте https://2ip.ru/

Примечание 1
Если вы не купили белый IP, то при перезагрузки ПК\роутера\маршрутизатора IP сменится и вам придется опять его узнавать. Не покупать белый IP можно, для этого существуют сервисы DDNS.

Примечание 2
Не забудьте пробросить порты, как правило большинство закрыто из вне. Или прописать в брендмауре.
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 21:45  [ТС]     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #3
Это всё понятно. Вопрос не в этом, а в том, смогу ли я используя внешний (белый) IP, подключиться к серверу. Ведь его адрес внутри сети выглядит как-то так 192.168.1.157.

И кстати, как мне программными cсредствами можно узнать именно внешний IP. NetworkInterface показывает мне только адрес выданный роутером.
fraley
94 / 94 / 34
Регистрация: 24.05.2015
Сообщений: 284
19.10.2015, 22:10     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #4
EvgenFree, это вопрос не совсем по андроид.
Я уже 100 лет не интересовался, но... как выше написал_Night_Scream_, вам нужен постоянный IP. Или тот же DDNS.
Когда вы соединяйтесь с сервером, вы так же указываете порт. В свою очередь на роутере вы настраиваете Port Forwarding, что когда приходит запрос на определенный вами порт, то роутер перенаправляет его на ваш IP. Например тот же 192.168.1.157.
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 22:20     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #5
EvgenFree, видимо не всё понятно.
Я так понял что у вас роутер...

И так, у роутера есть 2 интерфейса WAN и LAN (wifi антенки это тоже LAN).

ТАк вот, ваш ПК во внутренней сети в LAN сети, в этой сети СКОРЕЕ ВСЕГО стоит динамическая раздача IP\dns\шлюз а в вашем ПК соответственно стоит принять динамически.

Ваш роутер дает IP для LAN сети и прописывает себя в качестве шлюза у вас на ПК и сам роутер имеет IP в той же подсети что и ваш ПК.

Но у роутера есть ЕЩЕ один IP, который сидит на WAN интерфейсе, это и есть тот IP с которого вы выходите в интернет. Так вот вы хотите подключиться к LAN интерфейсу через WAN, для этого как раз и делается Port Forwarding и IP вам нужен белый на WAN интерфейсе от вашего провайдера.

Как смог так объяснил.
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 22:28  [ТС]     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #6
Я правильно понял, что: ?

1) Чтобы добраться до сервера, находящегося в сети LAN нужно подключаться по IP, который WAN и в настройках роутера прописывать Port Forwarding?
2) Если мой сервер перейдёт из одной сети Wi-Fi в другую, то, даже зная белый IP этой сети (WAN), я не смогу к нему подключиться, пока не будет настроен Port Forwarding?

Надеюсь понятно...
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 22:35     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #7
EvgenFree, Отправлять внешний IP-адрес ПК на электронный адрес... еще ответ вам.

Да неважно с какой точки мира вы будете подключаться к вашему роутеру.
Ваш сервер ведь ждет подключение на каком то порту (например 502) в сети LAN (192.168.1.157)

Фактически он ждет на 192.168.1.157:502 сокете, НО чтоб до сюда добраться из интерента нужно пробросить порт WAN на внутренний LAN к IP 192.168.1.157 и к порту 502, при этом сам WAN может ждать подключение на 5002 порту.

Фактически получится что вы с андроид приложения приконнектетесь к внешнему IP на порт 5002 а он вас перебросит на ваш ПК на порт 502, вы этого и не заметите, это такая своего рода защита от внешних атак, прописал правило только тем в ком уверен (но сильно не помогает))))...
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 22:56  [ТС]     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #8
В любом случае, не удасться подключиться к серверу, пока не будет настроен роутер. Верно?
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 23:01     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #9
EvgenFree, 99%. По умолчанию у большинства производителей, как правило, порты закрыты.

Чувствуется мне не до своего ПК хотите подключиться... шалите... если так, то хорошая новость есть, часто PIN код на роутерах включен, ломануть его не сложно если роутер из дешевых, но это уже совсем далеко от "Форум Программирование Android"
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 23:08  [ТС]     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #10
Да нет, всё в порядке у меня с этим )) Я на самом деле пытаюсь написать приложение.

Хорошо, проехали тему с роутерами.
Посмотрим на вопрос с другой стороны.
Предположим, я со своим телефоном вышел на улицу и теперь мой Ip - это что вроде 10.20.30.158 - его мне выдал провайдер - поставщик связи. То есть, теперь я в интернете по GPRS. Мой сервер доступен по этому адресу - 10.20.30.158:600 (любой порт). если утверждение true, то когда я снова подключусь к сети Wi-Fi (например зайду в кафе), то я всё ещё буду доступен по адресу 10.20.30.158:600, при условии, что я не отключал в настройках передачу данных по мобильной сети? Или после подключения к Wi-Fi доступ по тому адресу становится не возможным?
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 23:14     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #11
EvgenFree, ага, даже так, сервер на телефоне....
Приорететней wifi подключение, тоесть ваш телефон автоматически подключится к сети wifi и конечно ему назначится новый IP.
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 23:19  [ТС]     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #12
Ну, сервером это не назвать, условно, принял строку, отправил короткий ответ и всё.
Спасибо за ответы!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2015, 23:21     Android Клиент-Сервер подключение к серверу в сети Wi-Fi
Еще ссылки по теме:

Android Ожидание ответа от запроса к серверу по сети
Подключение к серверу Android
Клиент-серверное приложение android Android
Android Клиент-сервер приложение для android
Android Клиент Android не коннектится к Серверу пк

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 545
19.10.2015, 23:21     Android Клиент-Сервер подключение к серверу в сети Wi-Fi #13
EvgenFree, пожалуйста, но для этого есть спец кнопочка
Yandex
Объявления
19.10.2015, 23:21     Android Клиент-Сервер подключение к серверу в сети Wi-Fi
Ответ Создать тему
Опции темы

Текущее время: 05:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru