gpt4 book ai didi

c++ - 在C++中通过套接字发送二进制数据

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:52 25 4
gpt4 key购买 nike

在 C++ 中,我有这样的数据结构:

struct Data 
{
int N;
double R;
char Name[20];
};

我必须将此数据从客户端发送到另一个系统上的服务器(我必须发送一组数据结构,但我可以一个接一个地发送)。我想将它作为二进制数据发送过来,以便我可以提取另一端的数据并将其放入相同的结构类型中。

如果(客户端和服务器)都使用相同的编译器编译,则 sizeof(Data) 和结构中的所有位填充将相同。但是由于服务器是运行 Linux 的 64 位,而客户端甚至可以是 32 位 Windows,因此 Data 中的数据顺序可能不同。

我说得对吗?处理这个问题的最佳方法是什么?

最佳答案

假设所有客户端和服务器将始终使用相同的编译器构建相同的体系结构和操作系统几乎总是一个坏主意。最好编写代码将结构成员显式打包和解包为具有指定顺序的字节流,或者将数据转换为可以在另一端解析的非二进制格式(例如 JSON 或 XML)。

关于c++ - 在C++中通过套接字发送二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com