Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应该自动检测IPv4/IPv6吗?_Java_Ipv6_Ipv4 - Fatal编程技术网

Java应该自动检测IPv4/IPv6吗?

Java应该自动检测IPv4/IPv6吗?,java,ipv6,ipv4,Java,Ipv6,Ipv4,我有一个内置的PHP HTTP服务器,以 php -S localhost:8080 它显然使用IPv6进行监听: tcp6 0 0 ::1:8080 :::* LISTEN 2642/php 使用java.net.HttpURLConnection我尝试连接到它。但是我得到了异常java.net.ConnectException:连接被拒绝 一旦我做了System.setProperty(“java.net.preferipv6address”,“true”

我有一个内置的PHP HTTP服务器,以

php -S localhost:8080
它显然使用IPv6进行监听:

tcp6   0   0  ::1:8080    :::*    LISTEN      2642/php
使用
java.net.HttpURLConnection
我尝试连接到它。但是我得到了异常
java.net.ConnectException:连接被拒绝

一旦我做了
System.setProperty(“java.net.preferipv6address”,“true”)当然,一切正常。不过,这对我来说似乎是一个难题。Java实现应该使用默认设置

问:为什么Java没有检测到正确的Internet协议?这是我的操作系统(Linux)的错误配置还是错误配置?

Java(至少Oracle或OpenJDK到Java 8)没有正确实现地址选择。我在一段时间前提到过这个,但是没有太大的吸引力

默认模式是首选双堆栈/IPv6地址系列,但首选连接到IPv4地址。这就是您可以使用
首选IPV6Address=true影响的内容。根据该委员会的意见,这是出于兼容性原因作出的决定

在您的情况下,您可以连接到“::1”IPv6文本或添加一个现在的localhost6别名(因为它还可以处理没有ipv4地址的地址条目)


特别是对于“localhost”,不管怎样,很多配置错误的系统都存在。

这是一个很好的问题,我很想知道为什么Java没有更忠实地遵循现有的约定。似乎这些都是在每个平台上重新实现的,因为粗略的近似于嗯。奇怪。似乎在Mac上对我很好(服务器使用IPv6)。并且所述属性为
null
。此主机涉及哪些DNS记录?可能是因为它有一个指向非功能IP4地址的A记录吗?我向网络开发人员发送了一个提醒