Как добавить пользовательскую информацию в пакеты в среде INET OMNET++?C++

Программы на C++. Форум разработчиков
Anonymous
 Как добавить пользовательскую информацию в пакеты в среде INET OMNET++?

Сообщение Anonymous »

У меня есть некоторая информация, которую я хочу включить в пакеты, и я надеюсь добиться этого за счет расширения приложения UDPBasicApp, отправки пакета и его обновления на каждом узле коммутатора в сети.
Во-первых, я дал следующие определения

Код: Выделить всё

ExtendedPacket.msg:
import inet.common.packet.chunk.Chunk;
import inet.common.packet.Packet;

namespace inet;

class ExtendedPacket extends FieldsChunk {
double delayDev;                // Cumulative packet delay variance.
}
Впоследствии в udpBasicApp.cc:

Код: Выделить всё

void UdpBasicApp::sendPacket()
{
std::ostringstream str;
str addTag()->setCreationTime(simTime());
payload->setDelayDev(par("delayDev"));

packet->insertAtBack(payload);

L3Address destAddr = chooseDestAddr();
emit(packetSentSignal, packet);
socket.sendTo(packet, destAddr, destPort);
}
И вот как я это изменил:

Код: Выделить всё

    const auto& oldPayload = packet->peekData();
auto newPayload = makeShared();
newPayload = oldPayload->dup();
newPayload->setDelayDev(delayDev);
packet->removeAtBack(packet->getDataLength());
packet->insertAtBack(newPayload);
Теперь я столкнулся с проблемой: моя отправляющая сторона не может отправить пакет.
Как это можно решить? Помимо этого, есть ли какие-либо другие проблемы с моим кодом выше?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -framework

Вернуться в «C++»