问题描述
我想使用 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 (将#修改为@)