我想知道是否没有人使用联合来序列化 boost::asio 发送方/接收方的结构。我已经搜索过一些东西,但我发现的(还)都是这样或这样的例子。
所以我这样做了:
struct ST {
short a;
long b;
float c;
char c[256];
}
...
void sender::send(const ST &_packet) {
union {
const ST &s;
char (&c)[sizeof(ST)];
}usc = {_packet};
socket.send_to(boost::asio::buffer(usc.c, sizeof(ST)), endpoint);
}
...
ST var = {1234, -1234, 1.4567, "some text"};
sercer.send(var);
所以我现在的问题是,对基本数据类型进行序列化是不好的做法吗?
我知道我不能直接发送 var 大小的字符串,因此我可以使用 boost::serialization。