【问题标题】:How to send custom packets in omnet++?如何在 omnet++ 中发送自定义数据包?
【发布时间】:2020-01-10 09:10:16
【问题描述】:

假设我创建了自己的名为 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;
}

【问题讨论】:

    标签: c++ omnet++ inet


    【解决方案1】:

    使用套接字发送消息需要另一端的套接字。如果您在另一侧有一个套接字,那么请继续使用套接字发送您的消息。

    【讨论】:

      【解决方案2】:

      基本上,使用 cSimpleModule 基本成员函数 send() 发送的消息。该方法用于通过门向其他模块发送消息。也可以使用 scheduleAt() 在特定时间点发送消息。

      如果您使用更高级别的应用程序,例如 http 或 tcp 应用程序,那么您很可能会使用套接字。套接字还使用 send() 和 scheduleAt() 通过门发送消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-18
        • 1970-01-01
        • 2016-04-11
        • 1970-01-01
        相关资源
        最近更新 更多