用lua实现二进制协议操作

许多 Actionscript 程序员已经从 Flash 转到 Cocos2d-x 了。那么以前的那些超级好用的类库都不见了,只好重新来过。

我利用 Lua 和 lpack 库实现了一套 lua版本的 ByteArray 。下面就是用法了:

-- 这是lpackde用法
local __pack = string.pack("<b3ihP", 0x59, 0x7a, 0, 11, 1101, "中文")
local __ba = ByteArray.new()
-- 这个是直接把lpack编码的内容写入ByteArray,当然,readBytes和writeBytes也有实现
__ba:writeBuf(__pack)
-- 能猜出来就行
__ba:setPos(1)
print("ba.len:", __ba:getLen())
-- 下面就眼熟了把……
print("ba.readb:", __ba:readByte())
print("ba.readb:", __ba:readByte())
print("ba.readb:", __ba:readByte())
print("ba.readInt:", __ba:readInt())
print("ba.readShort:", __ba:readShort())
-- 有些名字被我改了,当然一眼就能看懂
print("ba.readString:", __ba:readStringUShort())
print("ba.available:", __ba:getAvailable())
print("ba.toString(16):", __ba:toString(16))


-- 换个马甲用
local __ba2 = ByteArray.new()
__ba2:writeByte(0x59)
__ba2:writeByte(0x7a)
__ba2:writeByte(0)
__ba2:writeInt(11)
__ba2:writeShort(1101)
__ba2:writeStringUShort("中文")
print("ba2.toString(16):", __ba2:toString(16))

最近一直在苦逼写底层,所以本文也只能介绍这么多了,若以后有时间再来排版和润色文字。

我会把常用的 lua 功能写出来整合在这个库里并开源,就像我的 as3库 和 java库 一样。

你可能感兴趣的:(用lua实现二进制协议操作)