在 C++ 中使用 SFML 将数据包数据复制到另一个数据包
copy packet data to another packet using SFML in c++
谁能告诉我如何将 sf::Packet
实例(例如 packet1
)的 SFML 数据复制到另一个实例(例如 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
。
到目前为止,我已经尝试过了,但没有用!
感谢所有回复,谢谢。
从未使用过 SFML,但通过阅读 SFML documentation,我预计:
const void* get1 = packet.getData();
size_t len = packet.getDataSize();
packet2.append(get1, len);
更简单的解决方案是将 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;
}
谁能告诉我如何将 sf::Packet
实例(例如 packet1
)的 SFML 数据复制到另一个实例(例如 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
。
到目前为止,我已经尝试过了,但没有用!
感谢所有回复,谢谢。
从未使用过 SFML,但通过阅读 SFML documentation,我预计:
const void* get1 = packet.getData();
size_t len = packet.getDataSize();
packet2.append(get1, len);
更简单的解决方案是将 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;
}