Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在将struct类型的变量发送到套接字_C_Sockets_Udp - Fatal编程技术网

正在将struct类型的变量发送到套接字

正在将struct类型的变量发送到套接字,c,sockets,udp,C,Sockets,Udp,对于一个研究项目,我是否可以将struct类型的变量从服务器发送到包含员工信息(ID、薪水等)的客户端,实际上我不太习惯使用C,所以我对这个概念不太清楚。或者告诉我,我可以用什么形式在套接字上发送这些信息 虽然可以传输结构内容,但这可能会导致问题 结构对齐在编译器、目标CPU和CPU版本之间有所不同。此外,需要注意每个结构元素的大小,以使其在整个体系结构中具有一致的大小 struct s { int a; short b; long

对于一个研究项目,我是否可以将struct类型的变量从服务器发送到包含员工信息(ID、薪水等)的客户端,实际上我不太习惯使用C,所以我对这个概念不太清楚。或者告诉我,我可以用什么形式在套接字上发送这些信息

虽然可以传输结构内容,但这可能会导致问题

结构对齐在编译器、目标CPU和CPU版本之间有所不同。此外,需要注意每个结构元素的大小,以使其在整个体系结构中具有一致的大小

struct s {
     int          a;
     short        b;
     long         c;
     long double  d;
};
虽然大多数工程师都知道,
int
可以是16到128位,这取决于目标体系结构,但其他字段的大小也可能因目标而异
long double
在最原始的嵌入式CPU上可能相当于
float
,在主流架构上可能是64、80或128位

struct s {
     int          a;
     short        b;
     long         c;
     long double  d;
};

为了解决这些问题,我们开发了一整套解决方案:从完全控制通信链路的两端到将数据转换为XML等流格式。

至少,您应该向我们展示您的
struct employee
声明。如果您想与其他体系结构交流,则需要设计(或重复使用)一种比发送字节更高级的序列化机制。我建议您首先决定如何将该信息存储在磁盘上的文件中,然后学习如何通过网络发送相同的表示。最后,你为什么选择UDP?对于传输业务数据来说,它似乎不是一个非常合适的选择;UDP是程序的需求,它是一个基于学习的应用程序