为了实现 tcp/ip 模拟,我为每一层创建数据包。
由于 omnet 发送函数仅支持发送 cMessage
对象,而我使用 .msg
定义从 cMessage
进行子类化,所以我找不到在不丢失数据的情况下通过门发送该数据包的方法。
例如,对于应用层,我想添加destAddress
和packetLength
,所以我创建了:
message AppPacket
{
int pktLength;
int destAddress;
}
现在,我已经在 omnet 中创建了 .cc
、.h
类来实现它:
class AppPacket : public cMessage { ... }
在我有了一个包含所有需要数据的新 AppPacket
之后,我想将它发送到较低层(传输层)但我不能,因为发送函数只发送 cMessage
对象。
我能做什么?我认为 Message 的全部意义在于帮助我们实现网络数据包。
最佳答案
您的 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);
关于c++ - 我如何通过 omnet++ 中的门发送 .message?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588499/