Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
GDjedi
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 2
#1

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

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

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

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

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

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

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

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

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

Организация взаимодействия между пользовательскими элементами
Здавствуйте. Помогите чайнику. Имеется 2 пользовательских элемента:...

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

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

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

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

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

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

Организация диалогового взаимодействия
Ситуация такая: Одно окошко открывает дочернее для организации диалога. Как...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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