Как отправлять собственные пакеты в omnet ++?

Допустим, я создал свой собственный пакет под названием myPacket. Есть ли способ отправить его с помощью socket.sendTo()?

Я знаю, что socket.sendTo() принимает пакет INET, поэтому есть ли способ преобразовать myPacket в пакет INET?

Модуль, который будет получать пакет, - Radio. Я проверил функции Radio, и они принимают inet-пакет, что я могу с этим поделать?

Signal *Radio::createSignal(Packet *packet) const
{
    encapsulate(packet);
    if (sendRawBytes) {
        auto rawPacket = new Packet(packet->getName(), packet->peekAllAsBytes());
        rawPacket->copyTags(*packet);
        delete packet;
        packet = rawPacket;
    }
    Signal *signal = check_and_cast<Signal *>(medium->transmitPacket(this, packet));
    ASSERT(signal->getDuration() != 0);
    return signal;
}

person kwkwkw    schedule 10.01.2020    source источник


Ответы (2)


Для отправки сообщений с использованием сокетов необходим сокет на другой стороне. Если у вас есть сокет на другой стороне, отправьте сообщение через сокет.

person imtithal    schedule 13.09.2020

По сути, сообщения, отправленные с помощью базовой функции-члена cSimpleModule send (). Этот метод используется для отправки сообщений другим модулям через шлюзы. Также можно использовать scheduleAt () для отправки сообщения в определенный момент времени.

Если вы используете приложение более высокого уровня, такое как приложения http или tcp, вы, скорее всего, собираетесь использовать сокеты. Сокеты также используют send () и scheduleAt () для отправки сообщений через шлюзы.

person imtithal    schedule 03.01.2021