1

参考DatagramSocket类的 Java 6 API 文档:

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

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

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

1 回答 1

3

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

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

于 2013-02-06T22:31:59.523 回答