| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- var ByteBuffer = require('./ByteBuffer');
- /*************************基本操作****************************/
- //压包操作
- var sbuf = new ByteBuffer();
- var buffer = sbuf.string('abc123你好')//变长字符串,前两个字节表示长度
- .int32(-999).uint32(999).float(-0.5)
- .int64(9999999).double(-0.000005).short(32767).ushort(65535)
- .byte(255)
- .vstring('abcd',5)//定长字符串,不足的字节补0x00
- .byteArray([65,66,67,68,69],5)//字节数组,不足字节补0x00
- .pack();//结尾调用打包方法
- console.log(buffer);
- //解包操作
- var rbuf = new ByteBuffer(buffer);
- //解包出来是一个数组
- var arr = rbuf.string()//变长字符串,前两个字节表示长度
- .int32().uint32().float()
- .int64().double().short().ushort()
- .byte()
- .vstring(null,5)//定长字符串,不足的字节补0x00
- .byteArray(null,5)//字节数组,不足字节补0x00
- .unpack();//结尾调用解包方法
- console.log(arr);
- /*************************更多操作****************************/
- //指定字符编码(默认:utf8):utf8/ascii/
- var sbuf = new ByteBuffer().encoding('ascii');
- //指定字节序(默认:BigEndian)
- var sbuf = new ByteBuffer().littleEndian();
- //指定数据在二进制的初始位置 默认是0
- var sbuf = new ByteBuffer(buffer,2);
- //插入数据到指定位置
- var sbuf = new ByteBuffer();
- sbuf.int32(9999,0);//把这个int32数据插入到ByteBuffer的第一个位置
- //在打包的时候在开始位置插入一个short型表示包长(通信层中的包头)
- var buffer = sbuf.packWithHead();
|