无法将 Omnetpp::cPacket 转换为 Inet::Packet

Unable to cast Omnetpp::cPacket to Inet::Packet

我正在尝试使用套接字发送数据包,但出现错误。

invalid conversion from ‘omnetpp::cPacket*’ to ‘inet::Packet*’ [-fpermissive]

我的代码如下:

    cPacket *payload = createPacket();
    //Packet* *payload = createPacket();
    payload->setTimestamp();
    emit(sentPkSignal, payload);
    socket.sendTo(payload, destAddr, destPort);
    numSent++;

我试过使用 check 和 cast。我是 C++ 和 OMNET++ 的新手

嗯,omnetpp::cPacketinet::Packet 是两个完全不同的东西,您不能将一个转换为另一个。当您使用 INET 4 时,您必须创建一个 inet::Packet 并将其传递给 socket.sendTo() 调用。

检查现有应用程序的代码以了解如何创建 inet::Packets。即 https://github.com/inet-framework/inet/blob/v4.1.2/src/inet/applications/udpapp/UdpBasicApp.cc#L108