【问题标题】:What is the 'wildcard address' In the context of UDP Broadcasts?UDP 广播上下文中的“通配符地址”是什么?
【发布时间】:2013-02-06 15:54:37
【问题描述】:

参考Java 6 API docs for the DatagramSocket 类:

UDP 广播发送始终在 DatagramSocket 上启用。为了 要接收广播数据包,DatagramSocket 应该绑定到 通配符地址。在一些实现中,广播包也可以 当 DatagramSocket 绑定到更具体的地址时接收。

谁能告诉我“通配符地址”是什么?以下对于侦听 UDP 广播是否有效:

MulticastSocket socket = new MulticastSocket(new InetSocketAddress(InetAddress.getByName("0.0.0.0"),4445);

【问题讨论】:

  • 这里rhyshaden.com/ipadd.htm 是关于通配符的一整节 :) 对于收听广播,一个通配符绑定的 DatagramSocket 就足够了。
  • Carlo,这确实是我上面示例的基础,但我想知道使用 0.0.0.0 是否是“好习惯”..
  • 嗯,这是收听来自任何发件人的广播的唯一做法。

标签: java network-programming broadcast multicast datagram


【解决方案1】:

通配符地址是0.0.0.0. 不要与广播到所有子网的地址混淆,即255.255.255.255.INADDR_ANY. 之后更正确地称为“任何”地址

在 Java 中,通过提供 null 作为绑定地址或完全省略参数,最容易使用它,例如new InetSocketAddress(null, 0)new InetSocketAddress(0) 分别。换句话说,它是绑定时的默认设置,因此是隐含的“良好实践”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多