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

C++ 如何通过omnet中的gates发送.msg?,c++,omnet++,C++,Omnet++,为了实现tcp/ip模拟,我必须为每一层创建数据包 由于omnet send函数只支持发送cMessage对象,而我使用.msg定义从cMessage子类化,因此我无法找到通过门发送该数据包而不丢失数据的方法 例如,对于应用层,我想添加destAddress和packetLength,因此我创建了: message AppPacket { int pktLength; int destAddress; } 现在,我在omnet中创建了.cc,.h类来实现它: class AppPa

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

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

例如,对于应用层,我想添加
destAddress
packetLength
,因此我创建了:

message AppPacket
{
   int pktLength;
   int destAddress;
}
现在,我在omnet中创建了
.cc
.h
类来实现它:

class AppPacket : public cMessage { ... }
在我有了一个包含所有所需数据的新的
AppPacket
之后,我想将其发送到较低的层(传输层),但我不能,因为发送函数只发送
cMessage
对象


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

应用程序数据包的.cc和.h文件将自动生成。 关于发送函数所采用的类型,您是对的,但是请注意,您的类继承了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);

AppPacket的.cc和.h文件将自动生成。 关于发送函数所采用的类型,您是对的,但是请注意,您的类继承了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);