目前在学C/S,服务端用C写的,客户端用C#,服务端现在接受数据用的是结构体,客户端目前只会将数据按顺序排列好放入byte[],然后发送到服务端,看起来简单也方便理解,但是每次数据对齐都很麻烦,请问有木有比较方便的方法?
C#不是太精通,试过序列化,但是序列化出来的数据貌似很多七七八八的东西比如版本号什么的,显然不能直接放入C语言的结构体中。
目前在学C/S,服务端用C写的,客户端用C#,服务端现在接受数据用的是结构体,客户端目前只会将数据按顺序排列好放入byte[],然后发送到服务端,看起来简单也方便理解,但是每次数据对齐都很麻烦,请问有木有比较方便的方法?
C#不是太精通,试过序列化,但是序列化出来的数据貌似很多七七八八的东西比如版本号什么的,显然不能直接放入C语言的结构体中。
用[StructLayout(LayoutKind.Sequential)],可以让C#的结构体兼容C++的
进一步用[FieldOffset]可以指定某个成员相对结构体内存的位置
具体参考
https://msdn.microsoft.com/zh-cn/library/system.runtime.interopservices.structlayoutattribute.aspx