当只有通信通道的一端使用它时,是否可以使用谷歌协议缓冲区作为序列化机制?
即,给定一个客户端,该客户端需要与以某种定义的消息字节结构进行通信的某个第 3 方服务器或硬件进行通信。
是否可以使用 protobuf IDL 指定确切的字节结构?或者 protobuf 是否使用它自己的字节打包格式,因此两端必须使用 protobuf 协议说话?
如果不是 protobuf,是否有一些库可以实现这一目标?
当只有通信通道的一端使用它时,是否可以使用谷歌协议缓冲区作为序列化机制?
即,给定一个客户端,该客户端需要与以某种定义的消息字节结构进行通信的某个第 3 方服务器或硬件进行通信。
是否可以使用 protobuf IDL 指定确切的字节结构?或者 protobuf 是否使用它自己的字节打包格式,因此两端必须使用 protobuf 协议说话?
如果不是 protobuf,是否有一些库可以实现这一目标?
不,协议缓冲区的布局非常严格,无法更改,并且不太可能与您正在使用的布局相匹配,除非它秘密使用协议缓冲区并且只是不宣传这一事实。编码记录在这里。
至于替代品;这在很大程度上取决于您使用的平台/语言/框架。发现您必须编写自己的工具来讨论所需的协议并不罕见。