问一个关于C和C++数据交换的问题
现在客户端和服务端需要交互数据,目前是数据传输到对方后,对方根据协议,从数据流中逐一的截取二进制数据段,然后转换为对应的变量类型,如
typedef struct fighter{
int32 seriesNo;
int32 gunNum;
int32 speed;
……
} stFighter;
stFighter myFigher;
根据协议 8-12字节是 变量speed,客户端接收到数据后,就截取8-12字节,转换成int32类型的参量。
我在想,既然在服务端要交换的数据myFigher是一个 结构体,那么我可不可以 服务端和客户端 定义同样的结构体stFighter,然后服务端传到客户端之后,客户端不需要再像上面一样解析,而是直接将 二进制流fighterBuff接收到之后, 直接定义一个 stFighter *pmyFighter ,直接pmyFighter = (stFighter*)fighterBuff 强制转换之后用呢?
除了不能跨语言(C和C++不算跨语言吧,C#貌似也可以强制转换),还有什么弊端吗? 是不是客户端和服务大小端不一样的时候不能用这样的方法?