Android 3G UDP Broadcast - PullRequest
       18

Android 3G UDP Broadcast

0 голосов
/ 09 сентября 2011

Я нахожусь на ранних стадиях разработки клиента кросс-платформенного сервера UDP.В моем случае клиенты отправляют широковещательную рассылку на телефон Android, к которому они подключены, через опцию мобильной точки доступа.

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

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

Итак, вот код:

InetAddress getBroadcastAdd(Context context) throws IOException {
    WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    DhcpInfo dhcp = wifi.getDhcpInfo();

    int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
    byte[] quads = new byte[4];
    for (int k = 0; k < 4; k++)
      quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
    return InetAddress.getByAddress(quads);
}

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

Заранее спасибо!

1 Ответ

0 голосов
/ 09 сентября 2011

Большинство сетей (Wifi и 3G) используют NAT .NAT разрешает исходящие соединения, но предотвращает входящие (интернет-соединение) соединения.

Когда ваш сервер и устройство находятся в одной и той же локальной сети (wifi), тогда это работает, поскольку вы не пересекаете шлюз NAT.

Обоснование: то, что вы пытаетесь сделать (подключение к интернету к устройству), не будет работать в большинстве сетей.

Обновление

Если ваши устройства обав той же локальной сети вы можете использовать стандартный способ рекламы / поиска услуг: Bonjour aka Zeroconf.Существует реализация Java, которая, как сообщается, работает на Android: http://jmdns.sourceforge.net/

Также см. http://home.heeere.com/tech-androidjmdns.html

...