【问题标题】:UDP Broadcast Messages to all nodes in OMNET++ INET向 OMNET++ INET 中所有节点的 UDP 广播消息
【发布时间】:2021-05-11 11:23:48
【问题描述】:

我将 OMNET++ INET 用于 Ad hoc 网络。我想将 UDP 数据包发送到多个终端节点,以便它们都接收相同的数据包,而不是随机选择终端节点。我应该如何在文件 omnetpp.ini 中设置 destAddress?

【问题讨论】:

    标签: omnet++ inet


    【解决方案1】:

    将其发送到 IP 广播地址 255.255.255.255。或者您可以发送到类似于 10.0.0.255 的本地广播地址(如果您有 8 位子网)。较低层将知道如何处理这些地址并在本地网络上进行适当的广播。

    【讨论】:

    • 我如何知道子网的位数?我正在使用 Ipv4NetworkConfigurator,默认情况下有 xml config = default(xml(""))。所以我应该使用 255.255.255.255 还是 10.255.255.255?
    • 但这还没有解决问题。我考虑过使用 UdpBasicApp.cc 和 UdpBasicApp.h 并重命名和修改它们,但是当我将它们放入我的项目时我做错了,因为我收到一个错误:“致命错误:inet/applications/base/ApplicationPacket_m.h:没有这样的文件或目录”
    • @Conny 你找到解决办法了吗?
    【解决方案2】:

    如果您想发送到特定节点(不是所有节点),那么您应该使用多播地址(但设置起来相当复杂),或者您确实需要修改 UDPBasicApp 和改变它也可以将数据包发送到多个地址的行为。即,您可以实现一个循环发送到所有地址,而不是从主机列表中随机选择。或者,您可以保留随机选择行为并使用不同的语法来表示应视为单个组进行发送的节点。例如"host1,host2,host3 host4,host5" 表示:从host1,host2,host3host4,host5 中随机选择,然后将UDP 数据包发送到逗号分隔组中的所有主机。

    最后一个提示:如果您不坚持使用 UDP,PingApp 确实支持向目标地址中的多个主机发送 ping。它实际上可以使用* 表示法ping 模拟中的所有主机接口。

    【讨论】:

      【解决方案3】:

      不确定这是否适合您,但我使用了UdpBasicBurst 节点应用程序并将destAddresses 字段设置为“广播”。

      【讨论】:

        猜你喜欢
        • 2021-07-26
        • 2021-08-06
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 2019-05-12
        • 2014-03-12
        • 2019-10-19
        相关资源
        最近更新 更多