目前想到的最好的方案(跨语言交互,例如 cpp <-> python):
把所有的数据视为 字节数组的数组 用msgpack编码, [0]放消息类型, [1]放json5, [2]以后是二进制数据;
可以很容易手动C++编码解码, python也可以按msgpack的标准来处理; 仅使用 msgpack 的子集, 0xC4-C6 表示二进制串, 0x90-0x9F \xdc \xdd 表示数组;
python代码:
msgpack.loads(b'\x93\xc5\x00\x05login\xc5\x00\x13{user:"a",pass:"b"}\xc5\x00
\x03\x00\x01\x02')
得到 [b'login', b'{user:"a",pass:"b"}', b'\x00\x01\x02']
其他编码方式要么太复杂(python pickle 对 b'' 输出15字节), 要么太大(b*64方案133%)
--
修改:ABCDEFGHJKLM FROM 103.216.43.*
FROM 103.216.43.*