Ich bin neu in IPv6, wenn ich versuche, einen URI mit IPv6 zu erstellen, stieß ich auf diese Ausnahme. Die vollständige Ausnahme istURISyntaxException: Ungültige% Sequenz
java.net.URISyntaxException: Invalid % sequence: %wl in authority at index 32: tcp://[fe80::ceb8:a8ff:fe23:5b84%wlan0]:1883
at libcore.net.UriCodec.validate(UriCodec.java:58)
at java.net.URI.parseURI(URI.java:394)
at java.net.URI.<init>(URI.java:204)
I-Code Ich mag dieses
String ipv6 = "tcp://[fe80::ceb8:a8ff:fe23:5b84%wlan0]:1883";
URI uri = new URI(ipv6);
SocketAddress sockaddr = new InetSocketAddress(InetAddress.getByName(uri.getHost()), 1883);
Socket socket = new Socket();
socket.connect(sockaddr);
Der obige Code funktioniert ohne jede Ausnahme in Samsung Galaxy S5 mit Android 7.1.1, aber nicht Asus Zenfone GoTV und Android-Emulator sieht mit Android 5 und 6.
Weiß jemand warum?
Danke.
Leider wird dies nicht funktionieren: Auf meinem Computer Java würde dies als „Netzwerkkarte namens‚25wlan0‘“ interpretieren. –
Das ist ein Bug in Java dann. Ich bin mir nicht sicher, ob du etwas dagegen tun kannst ... :( –