将struct类型的变量发送到socket

时间:2014-10-21 19:55:18

标签: c sockets udp

对于一个研究项目,我可以从服务器向客户端发送一个类型struct的变量,其中包含员工的信息(ID,工资等),实际上我并不习惯C,所以我不太清楚这个概念。或者让我知道我可以通过哪种形式在socket上发送这些信息。

1 个答案:

答案 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等流式传输格式。