如何在 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++ 中将消息从一个节点发送到多个节点?的主要内容,如果未能解决你的问题,请参考以下文章