передача звука

Ответить
0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

передача звука

Сообщение 0800009 » 09 фев 2016, 12:03

собрал приложение которое записывает звук на реальном устройстве(192.168.43.1) и передает его на эмулятор (192.168.43.133)через wifi

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

Sergey777
Сообщения: 68
Зарегистрирован: 30 мар 2015, 17:16

Re: передача звука

Сообщение Sergey777 » 09 фев 2016, 13:38

0800009 писал(а):собрал приложение которое записывает звук на реальном устройстве(192.168.43.1) и передает его на эмулятор (192.168.43.133)через wifi

Вопрос как проделать тоже самое только используя адреса которые назначает сотовый оп
атор .
на реальном устройстве адрес 100.84.93.230
если я возьму второе реальное устройство и узнаю его ip адрес допустим 100.84.93.240
смогу ли я хотя бы пропинговать не говоря уже про звук.
Предполагаю что оператор должен быть один и тот же
Здравствуйте. Чтобы узнать ip-адрес устройства программно либо так:

Код: Выделить всё

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
		int ip = wifiManager.getConnectionInfo().getIpAddress();
Либо так:

Код: Выделить всё

InetAddress addr = InetAddress.getLocalHost();
                        String myLANIP = addr.getHostAddress();
Других способов я не знаю, пробуйте! Гугл Вам в помощь!

0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

Re: передача звука

Сообщение 0800009 » 09 фев 2016, 13:49

Спасибо .
Но мне кажется Вашим способом я определю только лишь ip адреса локальной wifi сети
которые я уже и так знаю.

GRAF_COLLIOSTRO
Сообщения: 115
Зарегистрирован: 08 янв 2015, 14:32

Re: передача звука

Сообщение GRAF_COLLIOSTRO » 11 фев 2016, 03:09

0800009 писал(а):***Но мне кажется Вашим способом я определю только лишь ip адреса локальной wifi сети
которые я уже и так знаю.
эммм... задачи такой не стояло, но чисто из того что знаю: передача с айпи на айпи возможна - это в корне обычный интернет со всеми его законами и политикой. единственное, если вы захотите использовать специфичные порты (tcp/udp), то они могут быть заблокированы оператором.

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

возможно есть инструмент и попроще, но чисто логически с устройства вы будете видеть свой айпи внутри локальной сети, но никак не внешний.

ну и как следствие и возможно вообще решение проблемы - использовать собственный веб сервер. получить айпи клиентов не составляет труда. связать массу устройств и передать им айпишники друг друга тож не проблема... сами два устройства в сети друг друга будут искать годами. или вы купите им статику, или проще обзавестись статикой на серваке и оттуда осуществлять все связи

и ещё о проблемах операторов: зачастую несколько мобильников, которые в данный момент времени подключены к одной соте имеют один и тотже айпишник. дальше уже подсеть разделяет трафик между юзверями. это тоже стоит учитывать.

0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

Re: передача звука

Сообщение 0800009 » 08 апр 2016, 11:17

Выяснил что оба устройства находятся под симметричным натом
И соединение на прямую не возможно.
Но viber утверждают что весь трафик идет минуя их сервера.
Но как это возможно .
Вероятно они используют некоторые клиентские приложения как посредники и гонят трафик через них.

Sergey777
Сообщения: 68
Зарегистрирован: 30 мар 2015, 17:16

Re: передача звука

Сообщение Sergey777 » 09 апр 2016, 06:47

0800009 писал(а):Выяснил что оба устройства находятся под симметричным натом
И соединение на прямую не возможно.
Но viber утверждают что весь трафик идет минуя их сервера.
Но как это возможно .
Вероятно они используют некоторые клиентские приложения как посредники и гонят трафик через них.
Скорее всего viber используют передачу данных по протоколу p2p. Это технология передачи данных, при который ответствует понятие сервера и клиента (самый ярким пример: торрент-клиент, скайп). Если вы хотите передовать данные внутри одной сити по Wi-Fi, то это наверное самое подходящие решение.
Вот что об этом пишет гугл:
http://developer.android.com/intl/ru/gu ... fip2p.html
http://developer.android.com/intl/ru/tr ... irect.html
https://android.googlesource.com/platfo ... ivity.java
А вот использовать эту технологию не внутри одной сети будет крайне тяжело из-за ограничения прямого доступа к сети (NAT).

0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

Re: передача звука

Сообщение 0800009 » 09 апр 2016, 13:10

Спасибо.
Как раз наоборот мне нужно не в локалке
а именно передавать данные между двумя устройствами которые
находятся за разными натоми , причем симметричными.
А именно там и находятся основные пользователи viber.
Насколько я понял проблему прохождения симметричного ната
можно решить только используя посредника который весь трафик будет пропускать через себя т.е.
проксировать.
Значит viber использует либо свои сервера для передачи медиа-контента
, либо использует клиентские машины в качестве таких серверов.

0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

Re: передача звука

Сообщение 0800009 » 25 авг 2016, 16:34

Собственно выяснилось что мобильные операторы держат своих пользователей
за port restricted cone nat
Что позволяет достаточно просто соединяться клиентам

0800009
Сообщения: 36
Зарегистрирован: 08 мар 2014, 20:40

Re: передача звука

Сообщение 0800009 » 15 сен 2016, 10:20

Что позволяет достаточно просто соединяться клиентам по UDP .
но вот с TCP столкнулся с трудностями.
Не могу понять как узнать свой внешний адрес при TCP соединении. а главное ПОРТ.!!
можно использовать сервисы по определению IP адреса но они не дают номер порта
С UDP все просто отправляешь запрос на STUN сервер он возвращает тебе твой внешний адрес и порт.

Ребята выручайте не могу разобраться как получить внешний порт при TCP соединении находясь за NAT

Ответить