【问题标题】:Bind to AnyLocalAddress (0.0.0.0) in Java on IPv6-only network绑定到纯 IPv6 网络上的 Java 中的 AnyLocalAddress (0.0.0.0)
【发布时间】:2019-08-02 10:28:57
【问题描述】:

在 Java 中,如果我写的话

DatagramChannel channel = DatagramChannel.open();
channel.bind(new InetSocketAddress("0.0.0.0",162));

通配符是否也适用于纯 IPv6 网络?

P.S:我没有 IPv6-only 网络来测试这个。

【问题讨论】:

  • 请改用null。这在任何地方都可以使用。或者不用管它。

标签: java ipv6


【解决方案1】:

"0.0.0.0"基本上是指所有IP地址。为确保您绑定到所有已知地址,为什么不这样做。

DatagramChannel channel = DatagramChannel.open();
channel.bind(new InetSocketAddress(162));

如果不指定 IP 地址会导致它绑定到该主机上所有可用的 IP 地址。

见 - https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html

InetSocketAddress(int 端口)

创建一个套接字地址,其中 IP address 是通配符地址,端口号是指定值。

通配符是一个特殊的本地 IP 地址。它通常表示“任何”和 只能用于绑定操作。

【讨论】:

  • @JavaTechnical 是的。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2010-10-08
  • 2016-09-21
  • 1970-01-01
相关资源
最近更新 更多