我正在开发一个 Android 应用程序,我需要使用 IPv6 连接到服务器。
电话上启用了 IPv6,我可以看到我的本地 IPv6 地址ip addr
。我也可以ping6
从 PC 上成功地使用我的手机,反之亦然。
但是当我尝试通过 Java 命令获取 Android 上的本地地址时,NetworkInterface.getNetworkInterfaces()
我只能获取 IPv4 地址。
我也尝试打开客户端套接字,但线路
Socket s = new Socket(MYSERVERIPV6ADDRESS, PORT);
总是抛出java.net.SocketException: Invalid argument
. 我确定地址是正确的,因为我在计算机上尝试使用相同的代码并且运行良好。
似乎操作系统支持 IPv6,但 Java 虚拟机不支持。有没有办法解决这个问题?