Я разрабатываю приложение для Android, и мне нужно использовать IPv6 для подключения к серверу.
IPv6 включен на телефоне, и я вижу свой локальный IPv6-адрес с ip-адрес
. Я также могу успешно пропинговать6
свой телефон с ПК и наоборот.
Но когда я пытаюсь получить локальные адреса на Android с помощью команды Java NetworkInterface.getNetworkInterfaces()
, я получаю только адреса IPv4.
Я также пытался открыть клиентский сокет, но строка
Socket s = новый Socket(MYSERVERIPV6ADDRESS, PORT);
всегда выдает java.net.SocketException: Invalid arguments
.
Я уверен, что адрес правильный, потому что я попробовал тот же код на своем компьютере, и он работает отлично.
Похоже, что IPv6 поддерживается операционной системой, но не виртуальной машиной Java. Есть ли способ решить эту проблему?