如何通过omnet中的gates发送.msg

How can I send a .msg through gates in omnet?

本文关键字:发送 msg gates 中的 何通过 omnet      更新时间:2023-10-16

为了实现tcp/ip模拟,我必须为每一层创建数据包。

由于omnet send函数只支持发送cMessage对象,而我使用.msg定义从cMessage进行了子类化,因此我无法找到在不丢失数据的情况下通过门发送数据包的方法。

例如,对于我想要添加destAddresspacketLength的应用层,我创建了:

message AppPacket
{
   int pktLength;
   int destAddress;
}

现在,我已经在omnet中创建了.cc.h类来实现它:

class AppPacket : public cMessage { ... }

在我有了一个新的AppPacket和所有需要的数据后,我想把它发送到较低的层(传输层(,但我不能,因为发送函数只发送cMessage对象。

我能做什么?我认为Message的全部目的是帮助我们实现网络数据包。

AppPacket的.cc和.h文件将自动生成。您对send函数的类型是正确的,但请注意,您的类继承了cMessage对象,因此AppPacket也是一个cMessage!看看从tcpApp:发送自定义消息的示例代码

CustomMsg *msg = new CustomMsg("data");
msg->setByteLength(numBytes);
msg->setExpectedReplyLength(expectedReplyBytes);
msg->setServerClose(serverClose);
msg->setContent("message-specific-content");
socket.send(msg);