c++ - 我如何通过 omnet++ 中的门发送 .message?

标签 c++ omnet++

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

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

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

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/

相关文章:

c++ - 根据模板参数有条件地启用成员函数

c++ - 强制执行纯虚函数实现,可能使用不同的参数类型

c++ - 在运行时通过参数更改通过另一个模块回调(重新实例化)一个模块

linux - "Could not update ICEauthority file..."错误

docker - 在Windows上使用x11转发在docker内部运行Omnet++。 SSH不起作用

c++ - 覆盖继承的函数

c++ - 使用 sqrt 和 floor 时的近似误差

c++ - 新的通用指针any_ptr(现为dumb_ptr)使代码在智能指针之间更可重用

python - Omnet++简单模块C++代码中python嵌入式代码中的Segmentation fault错误

c++ - Omnet中循环队列的初始化