2013-03-03 95 views
1

我正在使用Lua套接字和TCP製作一個類似於聊天客戶端和服務器的IRC。我試圖弄清楚的主要問題是如何讓客戶端和服務器偵聽消息並同時發送它們。由於在服務器上執行socket:accept()時,它會暫停程序,直到創建連接。有沒有辦法接受多個連接並將它們存儲到表中?多個連接Lua插座

+0

您是否檢查了[GitHub]上的LuaSocket示例(https://github.com/fire/luasocket /樹/主/樣品)? – hjpotter92 2013-03-03 21:59:32

回答

4

這看起來完全像Copas這樣的調度員解決的問題。你應該閱讀這個:http://keplerproject.github.com/copas/manual.html#why - 即使你不想使用Copas,它會幫助你找出如何解決這個問題。

基本上,您需要在accept()之前使用select()。請注意,即使你這樣做,它實際上不能保證accept()將立即返回,因此您還應該使用settimeout()(請參閱http://w3.impa.br/~diego/software/luasocket/socket.html#select

+0

基本上,他需要做非阻塞套接字IO。 – Textmode 2013-08-27 23:13:40