如何在OMNet ++中回复该消息

时间:2018-01-27 22:31:37

标签: omnet++

有没有一种简单的方法来回复我收到消息的节点? 即我有一个节点网络,它有多个输入和输出,并相互链​​接。我从handleMessage()中的某个节点收到一条消息,我甚至可以获得从我的节点获取消息的门ID。但是如何找到我的哪个出局连接到这个节点,从中我得到了消息,以便我可以回复:

send(reply, "out", senderId);

我已经解决了这样的问题,但感觉过于复杂:

cGate * sender = msg->getSenderGate();
for (cModule::GateIterator i(this); !i.end(); i++)
{
     cGate *gate = i();
     std::string gateStr = gate->getName();
     if (gateStr == "out" && gate->getPathEndGate()->getOwnerModule() == sender->getOwnerModule() )
     {
         int senderId = gate->getIndex();
         send(reply, "out", senderId); 
     }
}

1 个答案:

答案 0 :(得分:2)

您使用的是inout门吗?如果是这样,这可能很简单:

gateHalf(msg->getArrivalGate()->getName(), cGate::OUTPUT)