Ich entwickle eine Android-Anwendung und ich muss IPv6 verwenden, um eine Verbindung zu einem Server herzustellen.Android und IPv6 in Java
IPv6 ist auf dem Telefon aktiviert und ich kann meine lokale IPv6-Adresse mit ip addr
sehen. Ich kann auch erfolgreich ping6
mein Handy vom PC und umgekehrt.
Aber ich versuche, lokale Adressen auf Android durch den Java-Befehl NetworkInterface.getNetworkInterfaces()
zu bekommen Ich bekomme nur IPv4-Adressen.
Ich habe versucht auch eine Client-Socket zu öffnen, aber die Linie Socket s = new Socket(MYSERVERIPV6ADDRESS, PORT);
immer java.net.SocketException: Invalid argument
wirft. Ich bin sicher, dass die Adresse korrekt ist, weil ich mit dem gleichen Code auf meinem Computer versucht habe und perfekt funktioniert.
Es scheint, dass IPv6 vom Betriebssystem, aber nicht von der Java Virtual Machine unterstützt wird. Gibt es eine Möglichkeit, dieses Problem zu lösen?
Update: Mit 'Socket s = neuer Socket (MYSERVERIPV6ADDRESS +"/64% eth0 ", PORT);' throws 'java.net.SocketException: Unknown host exception'. – Andrea