Android 애플리케이션을 개발 중이며 IPv6를 사용하여 서버에 연결해야합니다.Android 및 IPv6 in Java
IPv6가 전화기에서 활성화되어 있고 ip addr
으로 로컬 IPv6 주소를 볼 수 있습니다. 나는 또한 성공적으로 ping6
PC와 viceversa에서 내 전화.
그러나 나는 Java 명령을 통해 Android에서 로컬 주소를 얻으려고합니다. NetworkInterface.getNetworkInterfaces()
나는 IPv4 주소 만 얻습니다.
또한 클라이언트 소켓을 열려고했지만 Socket s = new Socket(MYSERVERIPV6ADDRESS, PORT);
은 항상 java.net.SocketException: Invalid argument
을 throw합니다. 내 컴퓨터에서 동일한 코드를 사용하여 완벽하게 작동하므로 주소가 정확하다고 확신합니다.
운영 체제에서는 IPv6을 지원하지만 Java 가상 컴퓨터에서는 지원하지 않는 것으로 보입니다. 이 문제를 해결할 방법이 있습니까?
업데이트 :'Socket s = 새로운 소켓 (MYSERVERIPV6ADDRESS + "/ 64 % eth0", PORT);을 사용하면'java.net.SocketException : 알 수없는 호스트 예외 '가 발생합니다. – Andrea