我正在使用Corona SDK制作一个需要luasocket的简单应用。 Corona SDK支持luasocket做async http req。
但我想使用luasocket的UDP。 来自luasocket的UDP receive()方法阻塞,直到收到消息为止。
Corona SDK不支持LuaLanes。 因此,在另一个线程中监听udp消息是不可能的。
所以我只是想在lua中是否有任何方法/技巧/解决方法来检测和取消,如果一个函数(在本例中为udp.receive())花费太长时间来响应?
提前致谢
答案 0 :(得分:3)
是..协同和事件.. http://www.lua.org/pil/9.4.html
触发一个定时器事件,说每100毫秒调用一个函数..在该函数中恢复一个协程..
在协程中。您可以循环读取传入的数据,如果不完整则会产生。
这个例子很好地解释了这个......
祝你好运.. F.答案 1 :(得分:2)
您是否设置了upd超时?
请参阅页面底部的http://w3.impa.br/~diego/software/luasocket/udp.html。