Я встроенный PHP-сервер HTTP начал какДолжна ли Java автоматически определять IPv4/IPv6?
php -S localhost:8080
Он, по-видимому использует IPv6 для прослушивания:
tcp6 0 0 ::1:8080 :::* LISTEN 2642/php
Использование java.net.HttpURLConnection
я пытаюсь подключиться к нему. Однако я получаю исключение java.net.ConnectException: Connection refused
.
Как только я делаю System.setProperty("java.net.preferIPv6Addresses", "true");
все работает, конечно. Это, похоже, для меня. Яблоко должно было работать с настройками по умолчанию.
Вопрос: Почему Java не обнаружил надлежащий интернет-протокол? Это ошибка или неправильная настройка моей ОС (Linux)?
Это отличный вопрос, я бы с удовольствием узнал, почему Java более точно не придерживается существующих конвенций. Кажется, что они переопределены на каждой платформе, как грубые аппроксимации http://cr.openjdk.java.net/~michaelm/7120875/webrev.3/src/macosx/classes/java/net/DefaultInterface.java.html –
hmm. Странный. [Gist: Эта программа] (https://gist.github.com/kedarmhaswade/a12c8c20f86d998474bb14d0e0b533cb), похоже, отлично работает для меня на Mac (сервер использует IPv6). И указанное свойство «null». –
Каковы записи DNS, связанные с этим хостом? Может быть, у него есть запись A на нефункциональный IP4-адрес? – bmargulies