我很难理解序列化是什么以及做什么。
让我简化我的问题。我的 c/c++ 程序中有一个struct info
,我可以将此struct
数据存储到文件中save.bin
或通过套接字将其发送到另一台计算机。
struct info {
std::string name;
int age;
};
void write_to_file()
{
info a = {"Steve", 10};
ofstream ofs("save.bin", ofstream::binary);
ofs.write((char *) &a, sizeof(a)); // am I doing it right?
ofs.close();
}
void write_to_sock()
{
// I don't know about socket api, but I assume write **a** to socket is similar to file, isn't it?
}
write_to_file
将简单地将struct info
对象保存a
到磁盘,使这些数据持久化,对吗?将其写入套接字几乎相同,对吧?
在上面的代码中,我认为我没有使用数据序列化,但无论如何数据a
都是持久的save.bin
,对吧?
问题
那么序列化的意义何在?我这里需要吗?如果是,我应该如何使用它?
我一直认为任何类型的文件
.txt/.csv/.exe/...
,,,都是内存中的位01
,这意味着它们自然具有二进制表示,所以我们不能简单地通过套接字直接发送这些文件吗?
代码示例受到高度赞赏。