Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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/3/sockets/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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的套接字通信_Java_Sockets_Tcp - Fatal编程技术网

Java 使用IPv4的套接字通信

Java 使用IPv4的套接字通信,java,sockets,tcp,Java,Sockets,Tcp,我在同一台机器上的两个端口之间使用套接字通信 在客户端,我使用sockets=newsocket(“localhost”,6666) 但套接字是使用IPv6创建的,并且使用底层tcp6 tcp 0 24::ffff:127.0.0.1:57812::ffff:127.0.0.1:31210最后确认- 问题是我无法使用flagjava.net.preferIPv4Stack=true,因为我无法阻止所有IPv6通信 我的问题是,如果我使用sockets=newsocket(“127.0.0.1”,

我在同一台机器上的两个端口之间使用套接字通信

在客户端,我使用
sockets=newsocket(“localhost”,6666)

但套接字是使用IPv6创建的,并且使用底层tcp6

tcp 0 24::ffff:127.0.0.1:57812::ffff:127.0.0.1:31210最后确认-

问题是我无法使用flag
java.net.preferIPv4Stack=true
,因为我无法阻止所有IPv6通信

我的问题是,如果我使用
sockets=newsocket(“127.0.0.1”,6666),是否始终使用IPv4创建套接字?我在我的机器上进行了测试,测试结果表明将始终使用IPv4


有没有其他方法可以确保IPv4连接?或者使用
127.0.0.1
可以正常工作?

指定类似
127.0.0.1
的IPv4地址可以确保套接字仅用于IPv4。

相反,指定像
localhost
这样的主机名会导致系统相关行为:在某些系统上,localhost同时声明为
127.0.0.1
(IPv4)和
::1
(IPv6),而在其他系统上,localhost仅用于IPv4地址,而IPv6使用不同的名称,如ip6 localhost或类似名称。在本地主机同时用于IPv4和IPv6的情况下,通常会使用首选系列(主要是IPv6)创建套接字。

指定类似
127.0.0.1
的IPv4地址可确保套接字仅用于IPv4。
相反,指定像
localhost
这样的主机名会导致系统相关行为:在某些系统上,localhost同时声明为
127.0.0.1
(IPv4)和
::1
(IPv6),而在其他系统上,localhost仅用于IPv4地址,而IPv6使用不同的名称,如ip6 localhost或类似名称。在本地主机同时用于IPv4和IPv6的情况下,通常会使用首选系列(主要是IPv6)创建套接字