1、在.proto文件中定义消息格式2、使用protobuf编译器3、使用c++ api来读写消息0、为何使用protobuf?1、原始内存数据结构,可以以二进制方式sent/saved.这种方式需要相同的内存布局和字节序。2、以ad-hoc方式将数据项编码成一个简单字符串----比如,将4个int...
分类:
编程语言 时间:
2014-08-14 01:15:47
阅读次数:
438
在写网络程序的时候,我们经常需要将结构体或者整数等数据类型序列化成二进制的buffer串。或者从一个buffer中解析出来一个结构体出来,最典型的就是在协议的header部分表征headlength或者bodylength在拼包和拆包的过程中,需要按照规定的整数类型进行解析,且涉及到大小端序的..
分类:
其他好文 时间:
2014-08-13 03:49:35
阅读次数:
10299
一、首先需要明白一点,术语“大端”和“小端”表示多个字节的哪一端(大端或小端)存储在该值的起始地址;小端:将低序字节存储在起始地址;大端:将高序字节存储在起始地址;对于一个16位的整数,内存中的存储方式如下图所示:但遗憾的是,二者并没有标准可循,两种格式都有系统在使用,下面程序可以判断主机字节序: ...
分类:
其他好文 时间:
2014-08-11 17:17:22
阅读次数:
228
一、概念 把对象转化为字节序列的过程称为序列化 把字节序列恢复为对象的过程称为反序列化 序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。 .NET框架提供了两种串行化的方式:1、是使用Bin....
分类:
其他好文 时间:
2014-08-08 12:18:45
阅读次数:
184
1 简介对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。序列化一般用于以下场景:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。对象所属的类必须实现Serializ...
分类:
编程语言 时间:
2014-07-22 00:29:34
阅读次数:
228
一、信息就是 位+上下文1.系统中所有的信息:包括磁盘文件,存储器中的程序,存储器中存放的用户数据,以及网络上传送的数据.都是一串位表示的. 区分不同的数据对象的唯一的方法就是我们读到这些信息的上下文.比如,在不同的上下文中,同样的一个字节序列可能表示 一个整数,一个浮点数,一个机器指令,一个字符....
分类:
其他好文 时间:
2014-07-21 00:36:50
阅读次数:
237
big-endian vs little-endian
分类:
其他好文 时间:
2014-07-16 22:55:10
阅读次数:
227
转自:http://blog.csdn.net/hrbeuwhw/article/details/80509111.字节序函数#includeuint16_t htons(uint16_t host16bitvalue);uint32_t htonl(uint32_t host32bitvalue)...
分类:
系统相关 时间:
2014-07-15 22:58:45
阅读次数:
550
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。一 序列化原因:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。二 至于选取哪种可参考下面的原则:1.在使用内存...
分类:
移动开发 时间:
2014-07-12 14:01:37
阅读次数:
208