有人可以告诉我如何将SFML的sf::Packet
实例(例如packet1
)的数据复制到另一个实例(例如packet2
)吗?
我知道如何获取数据包数据,但问题是我无法将其设置为packet2的数据。这就是我的意思:
sf::Packet packet; // a compressing variable
sf::Packet packet2; // a compressing variable2
const void* get1 = packet.getData(); // get the data of above packet variable
packet2 << get1; // did not worked
问题在于我无法将packet1
的数据带到packet2
。
到目前为止,我已经尝试了这个,但是没有用!
所有回复都表示赞赏,谢谢。
答案 0 :(得分:0)
从未使用过SFML,但是从阅读SFML documentation开始,我希望:
const void* get1 = packet.getData();
size_t len = packet.getDataSize();
packet2.append(get1, len);
答案 1 :(得分:0)
更简单的解决方案是将packet1
复制到packet2
,就像对任何“ value-type ”对象一样。
以下是一个例子:
#include <SFML/Network.hpp>
#include <iostream>
int main(int, char**)
{
sf::Packet p1;
p1 << "A string" << 42;
sf::Packet p2 = p1;
std::string str;
int i;
p1 >> str >> i;
std::cout << "1) str: " << str << ", i: " << i << std::endl;
p2 >> str >> i;
std::cout << "2) str: " << str << ", i: " << i << std::endl;
return 0;
}