1
假設我有N個支持多播的網絡接口。我計劃綁定N個UDP套接字,每個接口綁定一個,併發送到相同的多播IP /端口。有沒有比這更直接/有效的方法?如何組播發送到所有網絡接口?
接收時,我知道你可以使用同一套接字監聽多個接口,但是發送不能用一個套接字完成,或者可以嗎?
假設我有N個支持多播的網絡接口。我計劃綁定N個UDP套接字,每個接口綁定一個,併發送到相同的多播IP /端口。有沒有比這更直接/有效的方法?如何組播發送到所有網絡接口?
接收時,我知道你可以使用同一套接字監聽多個接口,但是發送不能用一個套接字完成,或者可以嗎?
另一個問題是使用IP_MULTICAST_IF更改用於在套接字上發送多播的接口。採用這種方法,您可以在每次發送之前調用發送N次並更改發送接口。這將允許您減少正在使用的套接字的數量,但不會減少發送呼叫的數量。
組播發送行爲是內嵌並引導朝the Robustness Principle/Postel's law網絡應用程序設計師:
在你做什麼,是你從別人(通常改寫爲接受什麼樣的自由派保守「是什麼保守你發送,在你接受的內容中是自由的「)。
我的意思是,該插座API和行爲使它很容易從多個接口接收的單個插座上(文接收),但不允許發出組播和從廣播出所有接口因此迫使程序員非常自覺地編寫應用程序來發送多個接口(保守發送)
該引用涉及協議處理。它與多播API設計或行爲沒有任何關係。 – EJP
我不明白這可能是一個協議問題。當它達到協議(電線)級別時,它始終是每個接口上的數據包。效率低下(對我而言)必須創建N個套接字並將N個數據報提交給堆棧,而不是具有一對一接口發送機制。這個問題甚至提到在最後一段中嘗試使用單個套接字。你如何解釋這個問題? –