是否可以向同一节点多次发送同一消息?

时间:2020-02-16 21:10:19

标签: omnet++

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

例如,当我尝试像这样循环执行时:

cMessage *msg = new cMessage("data");
cModule *targetNode = getParentModule()->getSubmodule(node[0]);
for(int i=0; i<5; i++){
    sendDirect(msg, targetNode, "io");
}

我收到此错误:

error dos attack

在Omnet中有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:0)

是的,但是每次您必须使用dup()创建一个duplicate of the message时。
因此您的代码可能看起来像:

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)