为了实现tcp / ip模拟,我为每个层创建了数据包。
由于omnet send函数仅支持在使用cMessage
定义从cMessage
进行子类化时发送.msg
对象,因此无法找到通过门发送该数据包的方法而不会丢失数据
例如,对于应用层,我想添加destAddress
和packetLength
,所以我创建了:
message AppPacket
{
int pktLength;
int destAddress;
}
现在,我已在omnet中创建了.cc
,.h
个类来实现它:
class AppPacket : public cMessage { ... }
我有一个包含所有需要数据的新AppPacket
后,我想将它发送到较低层(传输层),但我不能,因为send函数只发送cMessage
对象。
我该怎么办?我认为Message的重点是帮助我们实现网络数据包。
答案 0 :(得分:0)
您的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);