1

我正在使用 Corona SDK 制作一个需要 luasocket 的简单应用程序。Corona SDK 支持 luasocket 做异步 http req。

但我想使用来自 luasocket 的 UDP。来自 luasocket 的 UDP receive() 方法在收到消息之前一直阻塞。

Corona SDK 不支持 LuaLanes。因此,在另一个线程中收听 udp 消息是完全不可能的。

所以我只是想在lua中是否有任何方法/技巧/解决方法来检测和取消一个函数,在这种情况下是udp.receive(),响应时间太长?

提前致谢

4

2 回答 2

3

是的..协程和事件.. http://www.lua.org/pil/9.4.html

触发一个计时器事件,表示每 100 毫秒调用一个函数。在该函数中恢复一个协程。

在协程中。您可以循环读取传入的数据,如果不完整则屈服。

这个例子很好地解释了这一点..

祝你好运。。F。

于 2011-06-29T06:33:55.333 回答
2

你设置了upd超时吗?

请参阅页面底部的http://w3.impa.br/~diego/software/luasocket/udp.html 。

于 2011-06-22T09:18:07.290 回答