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

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

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

Организация прямого сетевого взаимодействия между устройствами - Программирование Android

31.10.2016, 20:10. Просмотров 187. Ответов 6
Метки нет (Все метки)

Здравствуйте.
Сабж. Например для медиа связи.
Учитывая, что адреса у мобильных устройств динамические и меняются каждую сессию, то понятно, что нужно промежуточное звено-сервер. Есть несколько вопросов:
1. Можно ли использовать сервер только для актуализации адресов(приложения-клиенты подключаются при открытии или изменении сетевого подключения и сообщают серверу свой текущий ip адрес) и дальнейший обмен данными происходит напрямую между клиентами?
2. В приложениях типа скайпа(или любом другом известном продукте, типа whatsapp, viber и пр.) потоковый трафик целиком идет через сервер или между клиентами? Может кто-нибудь знает по какому принципу это реализовано?
3. Не силен в сокетном взаимодействии, поэтому вопрос ip. Если несколько устройств подключены к одному роутеру, то внешний адрес у них одинаковый(во всяком случае об этом мне говорили различные сервисы по определению ip). Как тогда сервера(google firebase или те же мессенджеры например) находят нужное устройство?
Наверное я что-то не догоняю в маршрутизации.

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 20:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Организация прямого сетевого взаимодействия между устройствами (Программирование Android):

Передача данных между устройствами - Программирование Android
Всем привет! Подскажите, пожалуйста, как передать значение переменной на другое устройство. Думал использовать wifi direct. Но как это...

Прямой обмен координатами между устройствами - Программирование Android
Возможно ли реализовать прямую передачу координат (без хостинга) между устройствами? Если возможно то как?

Синхронизация данных приложения между устройствами - Программирование Android
Здравствуйте! Необходимо осуществить синхронизацию данных приложения на разных устройствах пользователя, т.е. есть бд, нужно, чтобы когда...

Обмен файлами между разными устройствами - Программирование Android
Вводная: необходимо реализовать обмен файлами между случайными людьми. Допустим пользователь выбирает файл для отправки, и другой делает...

Android Передача обмен данными между устройствами - Программирование Android
Здравствуйте! Каким образом реализовать передачу данных между двумя устройствами, если речь идет о простой игре со спрайт анимацией? ...

.NET 4.x Организация взаимодействия между пользовательскими элементами - C# ASP.NET
Здавствуйте. Помогите чайнику. Имеется 2 пользовательских элемента: "Голосование" и "Результаты" "Голосование" - ButtenList...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
31.10.2016, 20:40 #2
GDjedi,
1) Напрямую нельзя, если вы сидите через мобильного оператора, то скорее всего вы за серым IP, за которым сидят еще с сотню таких же как вы, у вас нет своего адреса в сети, поэтому напрямую нет.
2) Целиком через сервер, я так думаю по крайней мере. Возможно как-то vpn используется.
3) Ваш телефон всегда клиент, опрашивает сервер на наличие данных, или может не опрашивать, а поддерживать связь (keep alive), а сервер потом сам шлёт.

К вашему устройсту ЗА роутером невозможно подключиться, он "защищен" от этого.
vxg
Модератор
3157 / 1959 / 218
Регистрация: 13.01.2012
Сообщений: 7,497
31.10.2016, 20:59 #3
_Night_Scream_, можно и за роутером подключится пробив порты прокси но это сложнее
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
31.10.2016, 21:01 #4
vxg, да, пробросить можно, а еще лучше если арендовать белый IP.
GDjedi
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 2
31.10.2016, 21:47  [ТС] #5
Спасибо.
_Night_Scream_, если ip-серый или если дальше роутера нельзя подключится то как тогда подключаются в итоге? И при установлении соединения клиента с сервером и отправке ему (серверу) запроса куда отсылается ответ? Я думал на ip клиента-устройства на порт программы-клиента.
vxg
Модератор
3157 / 1959 / 218
Регистрация: 13.01.2012
Сообщений: 7,497
31.10.2016, 21:50 #6
GDjedi, запрос либо идет транзитом через сервер либо не нуждается в транзите так как все данные на сервере (одно устройство их туда кладет, а другое периодически опрашивая сервер забирает при поступлении). сервер - это арендованный у хостера ресурс
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
31.10.2016, 21:56 #7
GDjedi, в пакете присутствует source и distantion, по source потом обратно возвращается, причем от маршрутизатора к маршрутизатору это меняется и конечный сервер не знает на самом деле о вашем mac или ip или порту, всё по цепочке.
Глубже рассказать не смогу, боюсь ошибиться и сбить вас с толку.

У меня стоит примерно такая же задача, соединить 2 устройства между собой, я пришел к выводу что мне нужен VDS, через него буду соединять 2 телефона\планшета, сервер между ними посредник.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 21:56
Привет! Вот еще темы с ответами:

Архитектура для сетевого взаимодействия в приложении - Программирование iOS
Всем новогодний привет!)) Хотел бы поинтересоваться, как кто предпочитает организовывать у себя в проектах взаимодействие с server...

Литература для изучения сетевого взаимодействия - C++
Привет ребят! У меня вопрос такой, я почти дочитываю брюс эккеля и всё довольно просто. Есть поглубже литература? Я хочу такую литературу...

Организация домашней сети с телевизорами и мобильными устройствами - Сети
Добрый день, форумчане. В частном доме локальная сеть организована с помощью интернет-центра Zeexel Keenetic Lite II. Сеть содержит...

Организация взаимодействия форм - Delphi
Доброго времени суток! Снова требуется помощь: необходимо организовать взаимодействие 3 разных форм. На первой форме...


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

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

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