2013-02-06 82 views
1

參考Java 6 API docs for the DatagramSocket類:什麼是「通配符地址」在UDP廣播的環境中?

UDP廣播發送上一個DatagramSocket始終處於啓用狀態。爲了接收廣播數據包 ,DatagramSocket應該綁定到 通配符地址。在一些實現中,當DatagramSocket被綁定到更具體的地址時,還可以接收廣播分組。

有人能告訴我'通配符地址'是什麼嗎?它是以下有效監聽UDP廣播:

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

這裏http://www.rhyshaden.com/ipadd.htm是關於通配符的整個部分:)對於偵聽廣播來說,通配綁定的DatagramSocket應該足夠了。 – Fildor

+1

查看http://stackoverflow.com/questions/5472269/java-datagramsocket-listening-on-a-broadcast-address –

+0

卡洛,這的確是我基於我的上面的例子,但我想知道如果使用0.0.0.0是'良好的做法'.. – Kerry

回答

2

通配符地址爲0.0.0.0.不要與廣播到所有子網地址,這是255.255.255.255.更正確地稱爲「任意」相混淆地址,在INADDR_ANY.

在Java中,通過提供null作爲綁定地址或完全省略參數,可以很容易地使用它,例如分別爲new InetSocketAddress(null, 0)new InetSocketAddress(0)。換句話說,這是綁定時的默認設置,因此隱含地爲「良好實踐」。