C++ ns3数据包有效负载打印

C++ ns3数据包有效负载打印,c++,ns-3,C++,Ns 3,我正在使用ns3进行模拟,其中我创建了一个包,如下所示: std::ostringstream msg; msg << "Hello World!" << '\0'; Ptr<Packet> packet = Create<Packet> ((uint8_t*) msg.str().c_str(), msg.str().length()); packet->Print (cout); std::cout << std::endl;

我正在使用ns3进行模拟,其中我创建了一个包,如下所示:

std::ostringstream msg; msg << "Hello World!" << '\0';
Ptr<Packet> packet = Create<Packet> ((uint8_t*) msg.str().c_str(), msg.str().length());
packet->Print (cout);
std::cout << std::endl;
 uint16_t packetSize = msgx.str().length()+1;
 Ptr<Packet> packet = Create<Packet>((uint8_t*) msgx.str().c_str(), packetSize);
std::ostringstream msg;msg CopyData(buffer,p->GetSize());
字符串s=string(buffer,buffer+p->GetSize());

我能在ns-3谷歌小组的帮助下解决这个问题吗。我正在发布答案,以防其他人需要

在发送方,我需要如下设置消息长度

std::ostringstream msg; msg << "Hello World!" << '\0';
Ptr<Packet> packet = Create<Packet> ((uint8_t*) msg.str().c_str(), msg.str().length());
packet->Print (cout);
std::cout << std::endl;
 uint16_t packetSize = msgx.str().length()+1;
 Ptr<Packet> packet = Create<Packet>((uint8_t*) msgx.str().c_str(), packetSize);
uint16\u t packetSize=msgx.str().length()+1;
Ptr packet=Create((uint8_t*)msgx.str().c_str(),packetSize);
我需要在消息长度上加1,否则跳过空字符串终止。所以这是一个小错误。主要是,;当我在MAC层接收到数据包时,我触发一个函数。为了正确读取数据包内容,我应该删除MAC头和尾文件


问候。

我在ns-3谷歌小组的帮助下解决了这个问题。我正在发布答案,以防其他人需要

在发送方,我需要如下设置消息长度

std::ostringstream msg; msg << "Hello World!" << '\0';
Ptr<Packet> packet = Create<Packet> ((uint8_t*) msg.str().c_str(), msg.str().length());
packet->Print (cout);
std::cout << std::endl;
 uint16_t packetSize = msgx.str().length()+1;
 Ptr<Packet> packet = Create<Packet>((uint8_t*) msgx.str().c_str(), packetSize);
uint16\u t packetSize=msgx.str().length()+1;
Ptr packet=Create((uint8_t*)msgx.str().c_str(),packetSize);
我需要在消息长度中添加1,否则跳过空字符串终止。所以这是一个小错误。主要是,;当我在MAC层接收到数据包时,我触发一个函数。为了正确读取数据包内容,我应该删除MAC头和尾文件

问候