2016-01-06 26 views
0

如何在同一網絡上使用多播發送消息?將消息發送到同一網絡上的應用程序的所有其他實例

我正在使用C++,庫提升。我玩過發送者和接收者的例子。

但我也有幾個問題,我是網絡和C++的新手。 組播端口被設置爲30001,這有什麼好的理由嗎?

的例子表明,我使用,發件人:

IPv4的239.255.0.1

IPV6 FF31 :: 8000:1234

而對於接收器:

的IPv4 0.0.0.0 239.255.0.1

IPv6 0 :: 0 ff31 :: 8000:1234

爲什麼這些特定的地址?

接收機例如

此外,還有一個專門爲加入組播地址段,有沒有辦法來檢查是否有新的連接已經出現了這個地址嗎?看看新的實例加入或離開連接,這可能嗎?

但我的主要問題是,如果我是從運行的例子我的電腦發送郵件一樣的Hello World,這會出現在同一個網絡上的另一臺計算機上?

回答

1

爲什麼那些具體地址?

這些是由IP協議(IPv4/IPv6)爲多播指定的地址。部分地址是組規格(我認爲IPv4爲255.0.1,IPv6爲1234)。流量被轉發到本地計算機上的特定端口,但我不知道/無法找到詳細信息。

接收機例如

此外,還有一個專門爲加入組播地址段,有沒有辦法來檢查是否有新的連接已經出現了這個地址嗎?看看新的實例加入或離開連接,這可能嗎?

沒有,就像沒有內置的功能。多播應該被髮送到至少所有感興趣的機器。加入是向網絡/本地操作系統發出的信號,表示您是感興趣的機器,並且應該接收並轉發相關數據包。在所有情況下都不需要轉發這樣的信號(即,如果路由器已經擁有分組)。

但是,您可以播放你你加入後,通道上的存在,但是這是你想要的多播的頂部實現協議的一部分。

但我的主要問題是,如果我是從運行的例子我的電腦發送郵件一樣的Hello World,這會出現在同一個網絡上的另一臺計算機上?

取決於。如果你連接到同一層1(直接以太網或直接WiFi)結構,那麼可能是。如果您必須跳過路由器/接入點,則它們可能具有阻止流量的防火牆規則。

請參閱wikipedia瞭解其工作原理的摘要。或者閱讀標準的rfc1112rfc4604rfc5771

+0

謝謝。但是當你提到我可以播放我的存在時,你的意思是什麼?我會怎麼做? –

+0

您向廣播組發送消息。網絡上的任何機器都可以做到。 – Sorin

相關問題