如何在 OMNET++ 中将消息从一个节点发送到多个节点?

Posted

技术标签:

【中文标题】如何在 OMNET++ 中将消息从一个节点发送到多个节点?【英文标题】:How can I send message from one node to multiple nodes in OMNET++? 【发布时间】:2022-01-02 05:10:03 【问题描述】:

我有一个网络,我希望一个节点一次向 5 个节点广播消息。但我不能这样做,因为只有一个输出门和一个输入门。

其次,我想同时发送多条消息,就像这张图片中我希望在两个子网中发送消息。

Network

这是我的 NED 文件

package simulationnetwork;


network my_network

    @display("bgb=757,458,#80FF00;bgi=background/terrain,s");
    types:
        simple Node
        
            gates:
                input innerport;
                output outerport;
                
               
        

    submodules:
        node1: Node 
            @display("p=30,58");
        
        node2: Node 
            @display("p=249,58");
        
        node3: Node 
            @display("p=330,165");
        
        node4: Node 
            
            
            @display("p=182,193");
        
        node: Node 
            @display("p=155,377");
        
        node5: Node 
            
            @display("p=275,291");
        
        node6: Node 
            @display("p=451,311");
        
    connections:
        node1.outerport --> node2.innerport;
        node2.outerport --> node3.innerport;
        node3.outerport --> node4.innerport;
        node4.outerport --> node1.innerport;
        node5.outerport --> node6.innerport;
        node6.outerport --> node.innerport;
        node.outerport --> node5.innerport;

这是我的 CC 文件

#include <omnetpp.h>

using namespace omnetpp;

class Node: public cSimpleModule



protected:
    void initialize() override;
    void handleMessage(cMessage *msg) override;

;

Define_Module(Node);
void Node:: initialize()

    if(strcmp("node1",getName())==0)
    
        cMessage *msg = new cMessage("nodetable!,location");
        send(msg,"outerport");

    







void Node::handleMessage(cMessage *msg)

    send(msg,"outerport");




【问题讨论】:

【参考方案1】:
    如果你需要更多的门,你应该使用门向量,即input innerport[] 广播、创建副本(使用dup())并使用for循环将它们发送到不同的门。

由于您是初学者,我强烈建议您阅读Tictoc tutorial,它正好涵盖了您感兴趣的主题。

【讨论】:

以上是关于如何在 OMNET++ 中将消息从一个节点发送到多个节点?的主要内容,如果未能解决你的问题,请参考以下文章

omnet FC-AE-1553程序功能解析

使用 INet 在 Omnet++ 上检查和投射错误

omnet++:官方文档翻译总结

如何在php rabbitmq中将完整对象作为消息从生产者发送到消费者

在 asmack 中将项目发送到 pubsub 节点

OMNeT++ 无法识别 VACaMobil 创建的节点