如何在lua中打包带有结构体成员的结构体?

我正在为Nginx编写一个lua脚本,用于与提供必须符合的协议的服务器进行通信。该协议接受具有结构体成员的结构体,我找不到在lua中如何打包它的方法。

require "struct"
-- struct udp_packet_header {
--     uint32_t head_token;
--     uint64_t uuid;
--     uint64_t timestamp;
--     uint32_t order;
--     uint32_t trans_size;
--     uint32_t https_size;
--     uint16_t head_crc;
-- };
local udp_packet_header_def = '<ILLIIIH'

-- struct udp_packet {
--     struct udp_packet_header header;
--     char data[];
-- };
local udp_packet_struct_def = ?

如上所定义,如何打包具有结构体成员header的结构体udp_packet

我查看了https://github.com/iryont/lua-struct,但没找到有用的信息。

这样做可能有可能吗?如果不行,是否有更好的方法?或许编写C代码并从lua中调用它?

点赞