2010-10-04 4 views
2

Каков самый быстрый способ постоянно отправлять и получать данные между двумя телефонами Android?Самый быстрый способ постоянно отправлять и получать данные между двумя телефонами Android

например. long, lat, IM или только некоторое число.

не для постоянно подключаемые или толкающие услуги. Приложение работает на переднем плане и ждет данных с обеих сторон.

+0

Использовать SMS-сообщение? О, верно, это не бесплатно. Однако у меня есть ощущение, что попытка связаться с другим телефоном по его IP-адресу окажется в лучшем случае ненадежным (роуминг, переключение между политиками Wi-Fi/3G, политиками брандмауэров операторов связи и интернет-провайдеров) - вам понадобится сервер, если только для идентификации пользователей, а затем вы должны иметь возможность получить открытый сокет на стороне, которая получает информацию. –

+1

На самом деле это зависит от того, как вы хотите это постоянное соединение. Являются ли эти телефоны рядом друг с другом? Тогда, конечно, Bluetooth. Если есть какое-то расстояние между ними, я думаю, что единственным способом было бы подключиться к некоторому серверному приложению, которое управляет соединением между обоими телефонами. Как и телефон A отправляет запросы на сервер каждые n секунд. Телефон B делает то же самое. Сервер распознал, что Телефон A хочет связаться с телефоном B, поэтому он отправляет что-то только для телефона B. –

+0

есть расстояние между телефонами, и мой вопрос в том, как именно, каким протоколом и каким образом. например XMPP – shaimagz

ответ

0

Я не эксперт с Android, но вы можете попробовать через UDP, если такие подключения доступны на платформе Android.

Предполагая, что у ваших устройств есть частные ipv4-адреса, вам нужен центральный сервер (с открытым адресом ipv4), который может рассказать им, как их частный адрес переводится через NAT.

Этот переведенный адрес должен быть передан другим устройствам, которые могут начать связь с инициирующим устройством через UDP. Если связи не так много, убедитесь, что вы включили опцию «keepalive» в соединениях UDP.

Если все устройства имеют общедоступные IP-адреса (что я сомневаюсь), вам просто нужно договориться о порте и открыть соединения UDP. Сотрудники-сверстники просто должны обменяться своим публичным адресом.

Если все устройства имеют IPv6-адреса, вы можете использовать их как есть (после согласования порта). Одни сверстники просто должны сначала обменять их.