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

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

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

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

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

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

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

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

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

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

Надеюсь это вообще возможно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2015, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Android Клиент-Сервер подключение к серверу в сети Wi-Fi (Программирование Android):

Клиент Android не коннектится к Серверу пк - Программирование Android
Клиент Android не коннектится к Серверу ПК. Сервер: import java.io.*; import java.net.*; public class Server { ...

Клиент-сервер для android - Программирование Android
Здравствуйте. Мне нужно сделать следующее:сервер с базой данных и клиенты на пк и android с помощью которых будет выполняться работа с бд....

Клиент-сервер Linux-Android - Программирование Android
Передо мной стоит задача - написать простенький клиент сервер. Сервер на Debian, клиент Android 4.2.2. Вопрос собссно какой - подсказать в...

Клиент -android, сервер -java app - Программирование Android
Здравствуйте, помогите пожалуйста! Есть Клиент под андроид и сервер на java на pc - когда запускаешь с эмулятора - все работает - сообщения...

Клиент-сервер приложение для android - Программирование Android
Ситуация такая, у меня на компе стоит программка, которая парсит авито, и отправляет все новые объявы с определенных разделов ко мне в...

Реализация Клиент(Телефон) - Сервер(ПК) на Android - Программирование Android
Здравствуйте. Интересует информация по теме: клиент-сервер на Андройд. Для начала, хотелось бы "подружить телефон и ПК", тем самым...

12
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 596
19.10.2015, 21:38 #2
EvgenFree, обычно покупается белый IP (для дома), стоило например у нас 200р. в месяц.
Проверить какой сейчас IP можно на сайте https://2ip.ru/

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

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

И кстати, как мне программными cсредствами можно узнать именно внешний IP. NetworkInterface показывает мне только адрес выданный роутером.
0
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
19.10.2015, 22:10 #4
EvgenFree, это вопрос не совсем по андроид.
Я уже 100 лет не интересовался, но... как выше написал_Night_Scream_, вам нужен постоянный IP. Или тот же DDNS.
Когда вы соединяйтесь с сервером, вы так же указываете порт. В свою очередь на роутере вы настраиваете Port Forwarding, что когда приходит запрос на определенный вами порт, то роутер перенаправляет его на ваш IP. Например тот же 192.168.1.157.
1
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 596
19.10.2015, 22:20 #5
EvgenFree, видимо не всё понятно.
Я так понял что у вас роутер...

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

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

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

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

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

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

Надеюсь понятно...
0
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 596
19.10.2015, 22:35 #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, вы этого и не заметите, это такая своего рода защита от внешних атак, прописал правило только тем в ком уверен (но сильно не помогает))))...
1
EvgenFree
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 22:56  [ТС] #8
В любом случае, не удасться подключиться к серверу, пока не будет настроен роутер. Верно?
0
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 596
19.10.2015, 23:01 #9
EvgenFree, 99%. По умолчанию у большинства производителей, как правило, порты закрыты.

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

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

Подключение Android Annotations к Android Studio - Программирование Android
Каким образом это сделать? Есть два .jar файла: androidannotations-3.2.jar androidannotations-api-3.2.jar При подключении через...

Подключение к серверу - Программирование Android
я почему то не могу подключиться к серверу, сразу вылетает, не могу понять причины вот код: HttpClient client = new...

Первое android приложение с доступом к серверу - Программирование Android
Есть сервер на php на котором написано: Привет Мир! Как создать приложение android чтобы он обратился к серверу и вывел это?

Подключение к FTP серверу. не получается =( - Программирование Android
Что я делаю не так? Использовал тестовый FTP сервер, чтобы подружить приложение с ФТП, логин и пароль видите, можете даже подключиться, все...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
19.10.2015, 23:21
Ответ Создать тему
Опции темы

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