2010-06-17 71 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