Lua设置连接超时时间

看起来 Lua socket 的设置超时仅适用于 connect 后,而我不能使用 assert (socket.connect (...)),因为我有多个服务器需要尝试。我的情况是当一个服务器无法连接(而不是不稳定的网络)时,我将尝试使用另一个服务器,因此我必须在连接时设置超时。有什么建议吗?

编辑

我找到了 Lua TCP socket,但是使用它时,我无法检测到连接失败,

local tcp = socket.tcp()
tcp:settimeout(1)
tcp:connect(...)
点赞
用户204011
用户204011

如果无法正常工作,则可能是因为您的 luasocket 版本过旧,请更新到版本 2:

从 LuaSocket 2.0 开始,settimeout 方法会影响 connect 的行为,在超时的情况下会导致其返回一个错误。

(引自:http://w3.impa.br/~diego/software/luasocket/tcp.html#connect

2013-01-22 14:46:59