2010-06-17 68 views
1

我正在使用LUA一个IRC客户端的延迟。我正在使用“Lua for Windows”附带的库。所以我使用luasocket作为通信和IUP作为UI位。创建在Lua

我遇到的问题是,我被陷在一个循环,当我读IO。我尝试了IUP中的计时器,但似乎没有工作。

我一直在寻找一种方式来延缓IO读取循环。

我设定的超时为读为0和工作。

回答

2

你可能会使得在GUI线程内TCP套接字读阻塞。如果您没有及时收到预期的数据,这将锁定您的整个应用程序。在独立线程中执行套接字I/O(请参阅Lua Lanes)或使用非阻塞I/O(请参阅settimeout)。

Kepler Project是一个很好的指导网络应用程序与Lua的资源,但它专注于Web应用程序与IRC客户端。例如,Copas库使用Lua coroutines来处理多个TCP连接。

现在,如果您真的只是想知道如何在Lua中创建延迟,那么lua-users wiki中的Sleep Function文章应该提供您需要的所有信息。

+0

非常感谢您在阅读时减少了时间。所以不需要延迟。 – icefenix 2010-06-17 15:56:39