Omnet++ 如何在OMNet++;

Omnet++ 如何在OMNet++;,omnet++,Omnet++,有没有一种简单的方法来回复我从中获得消息的节点? 也就是说,我有一个节点网络,这些节点有多个输入和输出,并且相互链接。我从handleMessage()中的某个节点获取消息,我甚至可以获取从中获取消息到节点的门id。但是,我如何找到我的哪个OUT连接到这个节点,从这个节点我得到了消息,这样我就可以像这样回复: send(reply, "out", senderId); 我找到了这样的解决方案,但感觉太复杂了: cGate * sender = msg->getSenderGate();

有没有一种简单的方法来回复我从中获得消息的节点? 也就是说,我有一个节点网络,这些节点有多个输入和输出,并且相互链接。我从handleMessage()中的某个节点获取消息,我甚至可以获取从中获取消息到节点的门id。但是,我如何找到我的哪个OUT连接到这个节点,从这个节点我得到了消息,这样我就可以像这样回复:

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); 
     }
}

您正在使用
inout
门吗?如果是这样,这可以简单到:

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

不幸的是,有时它会崩溃,出现如下消息:没有这样的门或门向量:“”——在模块(Txc10)Tictoc10.Hub1(id=2)中,在t=0s时,事件#3,即使我已正确设置了所有的输入/输出链接。所以我必须坚持我自己的解决方案