C++ 如何通过omnet中的gates发送.msg?
为了实现tcp/ip模拟,我必须为每一层创建数据包 由于omnet send函数只支持发送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
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);