From 3a7b295e0fe166d6e4a44cfe17ad8c4f441e6084 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 8 Aug 2018 21:31:35 +0800 Subject: *update --- src/lua/embed/net.lua.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/lua/embed/net.lua.h (limited to 'src/lua/embed/net.lua.h') diff --git a/src/lua/embed/net.lua.h b/src/lua/embed/net.lua.h new file mode 100644 index 0000000..73b60c3 --- /dev/null +++ b/src/lua/embed/net.lua.h @@ -0,0 +1,61 @@ +/* net.lua */ +static const char* net_lua = R"( +jin.net = jin.net or {} + +--[[ +socket通信的数据类型 +* INT +* FLOAT +* BOOL +* STRING +STRING判定右界,以0结尾即可 +一个协议定义的例子(最好把协议统一放在一个单独的lua文件里) +-- s2c_package.lua +local INT = jin.net.dataType.INT +local FLOAT = jin.net.dataType.FLOAT +local BOOL = jin.net.dataType.BOOL +local STRING = jin.net.dataType.STRING +Skill = { + id = INT, + damage = FLOAT, + range = FLOAT, + description = STRING +} +发的时候 +local data, size = jin.net.serialize(Message.Skill, message) +Socket:send(data, size) +收的时候 +local data, size = Socket:receive() +local message = jin.net.deserialize(Message.Skill, data, size) +]] + +jin.net.INT = 1 +jin.net.FLOAT = 2 +jin.net.BOOL = 3 +jin.net.STRING = 4 + +jin.net.deserialize = function(prototype, data, size) + local message = {} + local i = 1 + for k, t in pairs(prototype) do + message[k] = data[i] + i = i + 1 + end + return message +end + +jin.net.serialize = function(prototype, message) + local data = "" + local size = 0 + for i, v in pairs(message) do + data, size = jin.bit.write(data, size, v) + end + return data, size +end + +-- 解密协议 +jin.net.decode = function() + +end + +)"; \ No newline at end of file -- cgit v1.1-26-g67d0