首页 文章

如何回复OMNet中的消息

提问于
浏览
2

有没有一种简单的方法来回复我收到消息的节点?即我有一个节点网络,它有多个输入和输出,并相互链接 . 我从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 回答

  • 2

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

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

相关问题