我正在编写一个C ++应用程序MyMasterApp,它通过wifi向多个客户端(大约5-10个)发送信息(OSC通过UDP),这些客户端是移动设备(Android或iPhone)。
每个设备都要接收相同类型的唯一信息。可能每个设备大约100-200字节,我将以30Hz更新所有设备。
我可以向每个设备发送一个唯一的数据包,或者我可以创建一个包含每个设备的每个唯一数据位的大结构,具有目标ID,将其多播到所有设备,然后每个设备只选择输出所需的数据。
即
VS
在我尝试这两种方法之前,是否有任何理论上或记录下的实际优势(例如,更好的性能,更少的冲突,丢包等)?或者差异是否可以忽略不计?
我有关于同一项目的相关网络性能问题 Should I listen on different ports, or the same port?
答案 0 :(得分:2)
多播的一个主要优点是可扩展性,因此将来如果您倾向于拥有更多设备多播将有所帮助。最好将多播与单播性能视为指导
微米。 Ebrahimi,M。Daneshtalab,P。Liljeberg和H. Tenhunen。三维网状结构中单播和组播通信的性能评估。计算机体系结构与数字系统(CADS),2010年第15届CSI国际研讨会,第161-162页,9月。 2010年。
答案 1 :(得分:2)
即使将未来的增长放在一边,你现在的200字节x 10设备的最坏情况已经是2000字节,这已经太大而无法通过UDP发送。实际的最大UDP数据报通常保持为576字节,即534字节的数字。所以你没有选择。你必须单播。