我有一個小客戶端程序監聽IPv6多播組(例如ff12 :: blah:blah%en0),以發送服務器發出的多播數據包。它運作良好。設置爲接收多播數據包的IPv6 UDP套接字是否也能夠接收單播數據包?
服務器有時也希望向我的客戶端發送一個單播數據包(因爲如果數據包只與一個客戶端相關,那麼使用它的所有其他組播組成員都沒有意義)。因此,我的服務器只是爲我的客戶端的IP地址和客戶端的IPv6多播套接字所偵聽的端口執行sendto()。
如果我的客戶端在MacOS/X下運行,這可以正常工作;單播數據包由接收組播數據包的相同套接字接收。在Windows,OTOH下,客戶端永遠不會收到單播數據包(即使它確實接收到多播數據包也沒有任何問題)。
我的問題是,是否期望多點傳送偵聽程序IPv6 UDP套接字也應該能夠接收同一端口上的單播數據包(在這種情況下,也許我做錯了什麼,或者Windows錯誤配置)?或者這是MacOS/X下的「恰好工作」,但不能保證,所以它在Windows下對我不起作用只是意味着我有錯誤的期望?
它應該工作,除非套接字*綁定到多播地址。 – EJP