2008-11-07 62 views
2

我正在使用MulticastSocket接收UDP多播數據包。我怎樣才能確定這個數據包發送到哪個地址?通過提供的方法,我只能確定發件人地址。Java:使用MulticastSocket確定接收地址

當然,我是在創建偵聽套接字時設置To-Address的人,但我真的可以確定嗎?廣播數據包呢?那麼有關數據包最終會在這裏發生什麼呢? 我真的想分辨這個數據包是否真的是多播的。

謝謝!

更新:目前好像只是發送到該端口的單播數據包也結束了在多播套接字接收():(綁定到設備也沒有給我更好的結果

+0

我很困惑。在設置MulticastSocket的時候不要將它綁定到特定的地址?這不是任何人可以用來發送給大家的地址嗎?即使數據包本身不可用,您也應該已擁有該信息。 – 2008-11-07 13:32:42

+0

是的,但看到我的更新關於單播包:) – guruz 2008-11-07 13:35:34

回答

2

我就有點模糊但是一個組播數據包將被髮送到您訂閱的IP /端口組合(假設您設法瞭解組播的中間路由器的清晰路徑),並且此信息將位於數據包的某個位置。確保組播包正在從正確的網絡接口接收,有一堆功能將它綁定到一個特定的接口。

我不認爲你有任何方式知道數據包w作爲「真正的」多播,即有人可以永遠僞造一個,因爲沒有內置真正的安全。