Android 2.2 и “Плохое семейство адресов” на Подключении Сокета

У меня есть довольно простая игра, которая работает отлично над каждой версией теперь до 2,1, но с новыми 2.2 (Froyo) выпускают, я не могу создать сокет. Я использую mina пакет для nio и получаю это исключение:

W/System.err (263): java.net. SocketException: Плохое семейство адресов W/System.err (263): в org.apache.harmony.luni.platform. OSNetworkSystem.connectStreamWithTimeoutSocketImpl (Собственный метод) W/System.err (263): в org.apache.harmony.luni.platform. OSNetworkSystem.connect (OSNetworkSystem.java:115) W/System.err (263): в org.apache.harmony.nio.internal. SocketChannelImpl.connect(SocketChannelImpl.java:272) W/System.err (263): в org.apache.harmony.nio.internal. PipeImpl$SinkChannelImpl.finishConnect (PipeImpl.java:164) W/System.err (263): в org.apache.harmony.nio.internal. PipeImpl. (PipeImpl.java:48) W/System.err (263): в org.apache.harmony.nio.internal. SelectorProviderImpl.openPipe(SelectorProviderImpl.java:51) W/System.err (263): в org.apache.harmony.nio.internal. SelectorImpl. (SelectorImpl.java:141) W/System.err (263): в org.apache.harmony.nio.internal. SelectorProviderImpl.openSelector(SelectorProviderImpl.java:58) W/System.err (263): в java.nio.channels. Selector.open (Селекторный java:48) W/System.err (263): в org.apache.mina.transport.socket.nio. SocketConnector.startupWorker(SocketConnector.java:248) W/System.err (263): в org.apache.mina.transport.socket.nio. SocketConnector.connect(SocketConnector.java:210) W/System.err (263): в org.apache.mina.transport.socket.nio. SocketConnector.connect(SocketConnector.java:137) W/System.err (263): в org.apache.mina.common.support. BaseIoConnector.connect(BaseIoConnector.java:40)

Позже в журнале, обычно сразу после я получаю это:

W/System.err (263): java.lang. NullPointerException W/System.err (263): в org.apache.harmony.nio.internal. SelectorImpl.wakeup(SelectorImpl.java:418) W/System.err (263): в org.apache.mina.transport.socket.nio. SocketConnector.connect(SocketConnector.java:222) W/System.err (263): в org.apache.mina.transport.socket.nio. SocketConnector.connect(SocketConnector.java:137) W/System.err (263): в org.apache.mina.common.support. BaseIoConnector.connect(BaseIoConnector.java:40)

Я сделал весь поиск с помощью Google и оглядывание, о котором я могу думать и ничего не нашел. Самое близкое я приехал, кажется, старая ошибка JDK с поддержкой ipv6 на XP и машинах Vista (я запускаю Vista). Рекомендации включали отключение ipv6 (который не работал), и отключающий ipv4, и уезжающий ipv6 (не будет работать на меня как мой маршрутизатор, и ISP не поддерживают его и так не мог протестировать так или иначе).

Какие-либо мысли, предложения, вещи я не попробовал?

Спасибо, Josh

8
задан Pentium10 21 May 2010 в 05:10
поделиться

3 ответа

это была ошибка, которая была исправлена: http://code.google.com/p/android/issues/detail?id=9431

вы должны быть очень будьте осторожны с обходным решением java.net.preferIPv6Addresses, потому что есть устройства и сети, где вам нужен IPv6.

(и, как было обнаружено в оригинальном плакате, если вы можете использовать io, а не nio, вы обычно должны.)

5
ответ дан 5 December 2019 в 08:22
поделиться

Да, вы правы. Я разместил эту проблему в группах Google и получил комментарий «эмулятор не поддерживает IPv6». Вот ссылка http://code.google.com/p/android/issues/detail?id=9431

Знаете ли вы, почему приложение должно думать, что его устройство поддерживает iPv6 или нет? Я думаю, что программистам Java-приложений это не нужно знать.

0
ответ дан 5 December 2019 в 08:22
поделиться

Спасибо Джошу ... Я мог бы получить ответ для этой проблемы по ссылке выше

, используя этот код, прежде чем открывать Selector

==> System.setProperty ("java.net.preferIPv6Addresses", "false");

я могу передать задачу ...

15
ответ дан 5 December 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: