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