Java 已连接的UDP套接字未向双堆栈计算机上仅IPv6的服务器应用程序发送数据报
我期望以下代码将数据报发送到任何ipv4/ipv6服务器应用程序,但在我的双堆栈框中,它不会将数据报发送到仅ipv6的服务器应用程序,我需要使用回圈文字:“1”而不是“localhost”来实现它Java 已连接的UDP套接字未向双堆栈计算机上仅IPv6的服务器应用程序发送数据报,java,sockets,udp,ipv6,Java,Sockets,Udp,Ipv6,我期望以下代码将数据报发送到任何ipv4/ipv6服务器应用程序,但在我的双堆栈框中,它不会将数据报发送到仅ipv6的服务器应用程序,我需要使用回圈文字:“1”而不是“localhost”来实现它 DatagramSocket datagramSocket = new DatagramSocket(); datagramSocket.connect(InetAddress.getByName("localhost"),8086); datagramSocket.send(new Datagram
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.connect(InetAddress.getByName("localhost"),8086);
datagramSocket.send(new DatagramPacket("hello".getBytes(), "hello".length()));
我会错过什么?我如何编写使用“连接”并能够将数据报发送到在双堆栈框上运行的任何纯ipv4或纯ipv6服务器应用程序的协议独立UDP客户端?确保
java.net.preferIPv4Stack=false
,并确保/etc/hosts
文件实际包含从localhost
到::1
。