如何解决如何使用ffi存储luasocket数据?
我想使用 ffi 将 luasocket 返回的 tcp 客户端对象存储在结构中。 我试图像这样将变量存储在结构中:
ffi = require 'ffi'
socket = require("socket")
ffi.cdef[[
typedef struct {
void *Tcp;
} ClientData;
void* malloc(size_t);
void free(void*);
]]
local Tcp = socket.bind("*",12345)
local ptr = ffi.C.malloc(ffi.sizeof("void*"))
while true do
local NewClient,Error = Tcp:accept()
if NewClient ~= nil then
local ClientData = ffi.cast("ClientData(&)",ptr)
ClientData.Tcp = NewClient
ClientData.Tcp:send("Hello World\n")
end
end
但我会接受这个错误:
test2.lua:30: 'void *' has no member named 'send'
谁能帮帮我? 文档说 lua 用户数据可以存储在 c 中的 void* 中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。