3
我有以下代码:luasocket的settimeout()如何工作?
function Server:run()
print("Running.")
self.running = true
while self.running do
if self.client == nil then
self.client = self.socket:accept()
print("Client connected.")
self.client:settimeout(10)
end
local line, err = self.client:receive()
if err then
print("Error: " .. err)
elseif line == "quit" then
print("Quitting.")
self.client:close()
self.running = false
else
print("Received: " .. line)
end
end
self:terminate()
end
我想到的是,当self.client:接收()被调用时,服务器会等待10秒,直到它有一个消息,然后继续在它的途中。
但是,这不是我经历的行为。无论超时设置为什么值,服务器都会立即生成超时错误,并且根本不会等待来自客户端的消息。
我怀疑我误解了一些东西。任何见解都会被认可。谢谢。
全部代码在这里:
使用完整的代码进行编辑。 – 2014-10-18 20:24:40