0
我目前正在模擬AODV路由,並且與數據包封裝/解封裝非常混淆。 在UDPBasicAPP.CC,有一個叫packetName來定義一個數據包的名稱變量(從INI文件中定義)如何解封數據包以獲取AODVRouting.CC中的UDPBasicApp數據包名稱?
void UDPBasicApp::initialize(int stage)
{
packetName = par("packetName");
}
所以一旦通過AODVRouting.CC傳遞的數據包,它已被封裝:
void AODVRouting::receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj, cObject *details)
{
cPacket *frame = check_and_cast<cPacket *>(obj);
datagram = dynamic_cast<INetworkDatagram *>(frame->getEncapsulatedPacket());
}
我想再次解封裝數據包以檢索上面提到的packetName值。代碼如下:
UDPPacket *testData = check_and_cast<UDPPacket *>(frame->decapsulate());
然而,我發現,UDPPacket類沒有任何的功能訪問/數據包進行解封裝後獲取packetName值。我不確定可以提供這種功能的其他類。我需要獲取packetName來處理AODVRouting.CC中的一些數據。請賜教,謝謝。