我正在使用組播UDP消息。我需要將接收到的數據包的目標IP地址與通道的多播地址進行比較,接收器應該監聽以確保它不接收在不同多播信道上多播的消息。在增強庫中查找收到的UDP消息的目標IP地址
我知道我可以通過使用recvmsg()的UNIX套接字找到目標IP地址,然後執行此處提及的所有內容:Get destination address of a received UDP packet。
但我一直在使用boost庫ASIO套接字,雖然有對應於recvfrom()funcn的receive_from(),但我找不到與recvmsg()類似的功能。任何人都可以幫助我在這裏..有沒有辦法找到在提升庫中接收到的數據包的目標IP地址?
當一個多播數據包被路由器重定向到所有訂閱了該多播通道的接收者,並且如果在一臺機器上有多個接收器運行,它們都會收到這個數據包,而不是隻有一個特定的接收者該組播頻道。這部分是真的..它總是發生 – vinsal
你是說你有不想接收多播數據的多播接收器嗎?這部分對我來說不是很清楚。如果他們不想收到這些數據,他們爲什麼要聽它呢? –
由於接收者只能綁定到一個端口,而不是地址,所以在端口上偵聽的所有接收者(在同一臺機器上)都會收到這條消息,因爲他們不檢查dest。數據包的IP地址。 – vinsal