Protobuf是Google公司开发的一种数据格式,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强,因为支持的语言没有C所以才有了Protobuf-C.
JSON与 cJSON
:
JSON类型数据可读性很好,但是整个数据包中会带有一些无用的数据,会在一定程度上带来通信负担.简单的JSON数据,我们使用C语言的一些字符串操作相关的库函数也是可以做到组包和解析的,但是一些稍微复杂一点的JSON,可能就没那么好操作了。这时候我们可以借助一个第三方库——cJSON库
,可以很方便来做数据组包及解析。json格式(分有空格的JSON(log查看),无空格格式的json(实际通信时)cJSON_PrintUnformatted
)在线检查网站。
CJSON打包解析的例子
s2j库
二 nanomsg
是一个实现了几种可扩展协议
的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。用于多线程、多进程、多机通信。nanomsg是一个socket library,所以其应用接口与标准的socket接口差不多,只是多了前缀nn_