c - 通过服务器和客户端之间的网络传递原始结构

标签 c

服务端和客户端软件都是用GCC编译的,运行在Linux上。但是,它们在不同的平台上运行。

假设已经处理了字节顺序,如果我们为每个成员使用固定大小的 stdint 类型,那么通过原始结构是否安全?意思是不特别注意对齐/填充。

编辑: 我们控制服务器和客户端软件。它们由我们使用相同的 gcc 版本编译,即服务器和客户端之间没有不同的 pack 属性。

最佳答案

没有。即使您使用固定大小的整数类型,您的服务器和客户端上的不同版本的 GCC 可能仍然不同意相邻结构成员之间的填充,并且可能不同意整个结构的对齐方式。例如。服务器上的 GCC 使用单字节填充,而客户端上的则不使用。

关于c - 通过服务器和客户端之间的网络传递原始结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23191581/

相关文章:

c++ - 带有 gso 的 UDP 没有收到整个消息

c - 删除叶节点 BST

C# 十进制到 byte[] 并在 C 中返回

C Win32 API : Update Edit box when finished editting

c - 我想打印输入字符串中以空格分隔的单词

c - 与 0.9 相比,为什么 >= 运算符在 C 中与 > 运算符一样工作

c - 通过C中的数组名称和指针访问2D数组元素

C - UDP 从未知来源接收数据包

转换新元素以将它们附加到单链表中

c++ - 两个 for 循环和其中的一个 if 语句