Omnet++ 是否可以将同一消息多次发送到同一节点?

Omnet++ 是否可以将同一消息多次发送到同一节点?,omnet++,Omnet++,我想模拟DOS攻击。因此,我想多次向特定节点发送相同的消息 例如,当我尝试在循环中这样做时: cMessage *msg = new cMessage("data"); cModule *targetNode = getParentModule()->getSubmodule(node[0]); for(int i=0; i<5; i++){ sendDirect(msg, targetNode, "io"); } cMessage*msg=新的cMessage(“数据”)

我想模拟DOS攻击。因此,我想多次向特定节点发送相同的消息

例如,当我尝试在循环中这样做时:

cMessage *msg = new cMessage("data");
cModule *targetNode = getParentModule()->getSubmodule(node[0]);
for(int i=0; i<5; i++){
    sendDirect(msg, targetNode, "io");
}
cMessage*msg=新的cMessage(“数据”);
cModule*targetNode=getParentModule()->getSubmodule(节点[0]);

对于(int i=0;i是,但每次都必须使用
dup()

因此,您的代码可能如下所示:

cMessage *msg = new cMessage("data");
cModule *targetNode = getParentModule()->getSubmodule(node[0]);
for(int i=0; i<5; i++){
    cMessage * copyMsg = msg->dup();
    sendDirect(copyMsg, targetNode, "io");
}
delete msg; // remove original message (no longer needed) 
cMessage*msg=新的cMessage(“数据”);
cModule*targetNode=getParentModule()->getSubmodule(节点[0]);
对于(int i=0;idup();
sendDirect(复制消息,目标节点,“io”);
}
删除消息;//删除原始消息(不再需要)

是的,但每次都必须使用
dup()创建一个
因此,您的代码可能如下所示:

cMessage *msg = new cMessage("data");
cModule *targetNode = getParentModule()->getSubmodule(node[0]);
for(int i=0; i<5; i++){
    cMessage * copyMsg = msg->dup();
    sendDirect(copyMsg, targetNode, "io");
}
delete msg; // remove original message (no longer needed) 
cMessage*msg=新的cMessage(“数据”);
cModule*targetNode=getParentModule()->getSubmodule(节点[0]);
对于(int i=0;idup();
sendDirect(复制消息,目标节点,“io”);
}
删除消息;//删除原始消息(不再需要)

还有一点信息:您必须复制消息的原因是,一旦您发送了消息(由消息指针表示)你永远不会知道接收方何时修改或甚至从内存中删除了该消息。这基本上意味着,一旦你发送了该消息,你就不再“拥有”它,不应该修改、删除甚至重新发送它。还有一点信息:你必须复制该消息的原因是,一旦你发送了一条消息(由消息指针表示)您永远不会知道接收方何时修改或甚至从内存中删除该消息。这基本上意味着,一旦您发送该消息,您将不再“拥有”它,并且不应修改、删除甚至重新发送它。