Lua Copas,帮助澄清如何处理多个用户。

我有点困惑,但我认为这将是一个简单的答案,但我的搜索没有帮助我太多:( 我想能够在任何地方发送一个skt:send。我可以将其作为参数发送到OutToUser函数中,但我将有许多不同的地方想要这样做,并且认为这将变得太杂乱。我尝试将它存储为类似Server.connections [key] = skt的东西,其中key是主机和端口,但无法弄清楚以后如何再次获取主机和端口。

有好的解决方案吗?

_edit_我知道这是范围问题,但是由于我是lua的新手,因此找不到一个好的解决方案。

`` ` 需要 "copas" 服务器= {} function Server:new() local object = {} setmetatable(object,{__index = Server}) return object end

function Server:init() function handler(skt,host,port) while true do data = skt:receive() if data ==“quit”then --不会起作用 OutToUser(data)

            - 当然这将很好
            -- skt:send(data..“\ r \ n”)
        end
    end 
end

server = socket.bind(“*”,49796)
copas.addserver(服务器,
    返回处理程序(copas.wrap(c),c:getpeername())
)
copas.loop()

end

function OutToUser(data) skt:send(data ..“\ r \ n”) end

服务器= Server:new() 服务器:init() `` `

原文链接 https://stackoverflow.com/questions/6196122

点赞
stackoverflow用户513763
stackoverflow用户513763

我认为你只需要让 OutToUser 函数接受 skt 参数,然后从处理程序内部将其传递即可。

2011-06-01 07:15:09