对于一个研究项目,我可以从服务器向客户端发送一个类型struct的变量,其中包含员工的信息(ID,工资等),实际上我并不习惯C,所以我不太清楚这个概念。或者让我知道我可以通过哪种形式在socket上发送这些信息。
答案 0 :(得分:0)
虽然可以传输结构内容,但这可能会导致问题。
结构对齐因编译器,目标CPU和CPU版本而异。此外,每个结构元素的大小都需要小心,以便在各种体系结构中保持一致的大小。
struct s {
int a;
short b;
long c;
long double d;
};
虽然大多数工程师都知道int
可能在16到128位之间,但根据目标架构,其他字段的大小也可能与目标不同。在最原始的嵌入式CPU上,long double
可能等同于float
,在主流架构上可能是64,80或128位。
为了解决这些问题,我们发展了各种各样的解决方案:从完全控制通信链路的两端到将数据转换为XML等流式传输格式。