两边用同一个.h不行吗?即使两边平台不同,大小头不同,边界对齐不同,类型长度不同。
我们都可以通过序列化反序列化使它们保持一致。
这就是我们中间件设计最初的问题,在不同平台间传送任意的struct。同时实现了不同语言间传送结构。如c与JAVA。一边序列化发出,另一边接收后反序列化到object。或反之。
c/s协议属于网络协议第五层,RPC,远过程调用。序列化反序列化属于网络协议第六层,XDR,外部数据表达。
中间件提供第五层第六层服务。
用一个数据描述,生成c的struct和JAVA的class,同时生成c和JAVA模板。
就可以实现互操作啦。
【 在 wuzhiqiu1 的大作中提到: 】
: 问题1:
: 在依赖QT的C/S项目中(同一个pro下),c端和s端的不同类中定义了相同的结构体定义,用于C/S传输和解析socket数据。我review时,认为此法不妥,应该唯一定义,以此理由要求同事修改是否妥当?
:
: ...................
--
修改:ylh1969 FROM 221.221.48.*
FROM 221.221.48.*