簡體   English   中英

如何從收到的多播消息中確定發送方的mulicast組和端口對

[英]How to determine sender's mulicast group&port pair from the received multicast message

我編寫了一個服務(C ++),該服務在AIX機器上運行,並從遠程主機接收多播消息(我的服務加入了預定義的多播組和端口對)。

最近,我被要求處理從不同主機(在同一套接字上的不同組播組和端口,在同一套接字上)收到的多播消息。盡管我可以堅持使用同一端口。

問題是,必須分別處理從每個主機接收的消息。

如何區分這些消息? 是否可以從套接字/接收到的消息中檢索發件人的多播組和端口對?

雖然可以使用recvfrom()標識遠程主機的地址(不是多播組!); 在監聽相同端口的不同主機上執行不同操作通常不是一個好主意。 這違反了最不驚奇的規則。

因此,簡短的答案是區分遠程主機地址。

如果要區分同一端口上的多播組,則必須將多個套接字與該多播組地址綁定。

代碼如下:

addr.set(239,0,0,1,8888);
udp.socket();
udp.joinmcast(&addr);
udp.bind(&addr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM