Estoy desarrollando una aplicación de Android y necesito usar IPv6 para conectarme a un servidor.Android e IPv6 en Java
IPv6 está habilitado en el teléfono y puedo ver mi dirección IPv6 local con ip addr
. También puedo ping6
con éxito mi teléfono desde la PC y viceversa.
Pero cuando trato de obtener direcciones locales en Android a través del comando Java NetworkInterface.getNetworkInterfaces()
Solo obtengo direcciones IPv4.
También me tryed para abrir un socket de cliente pero la línea Socket s = new Socket(MYSERVERIPV6ADDRESS, PORT);
siempre tiros java.net.SocketException: Invalid argument
. Estoy seguro de que la dirección es correcta porque he intentado con el mismo código en mi computadora y funciona perfectamente.
Parece que IPv6 es compatible con el sistema operativo pero no con la máquina virtual Java. ¿Hay alguna manera de resolver este problema?
Actualización: Usando 'Socket s = new Socket (MYSERVERIPV6ADDRESS +"/64% eth0 ", PORT);' throws 'java.net.SocketException: excepción de host desconocido'. – Andrea