Omnet ini配置文件-为每个节点设置随机目的地

问题描述 投票:0回答:1

我想在Udp基本应用程序中为100个节点的数组设置随机目的地

*.host[*].udpApp[0].destAddresses = "host[${intuniform(0,99)}]"

我需要所有源节点选择一个随机目标并开始发送流量。但是omnet ++在上述声明中给出了错误。已经尝试过*.host[*].udpApp[0].destAddresses = "host[${0..99}]",但只为所有节点选择1个模拟运行的第一个节点。

omnet++ inet
1个回答
0
投票

您无法以这种方式实现目标,因为根据INI文件中的OMNeT++ Simulation Manual

将变量按文本替换,结果通常不作为算术表达式求值。

事实上,不需要使用destAddresses的值进行操作,因为UDP Basic App确实从destAddresses中给出的设置中随机选择了目标地址。在UdpBasicApp.cc中查看该方法:

L3Address UdpBasicApp::chooseDestAddr()
{
    int k = intrand(destAddresses.size());
    if (destAddresses[k].isUnspecified() || destAddresses[k].isLinkLocal()) {
        L3AddressResolver().tryResolve(destAddressStr[k].c_str(), destAddresses[k]);
    }
    return destAddresses[k];
}

您要做的是将所有主机添加到destAddresses。例如,假设网络中有五台主机:

*.host[*].udpApp[0].destAddresses = "host[0] host[1] host[2] host[3] host[4]"
© www.soinside.com 2019 - 2024. All rights reserved.