对于Lua套接字,setting timeout看起来只能在connect
之后使用,我无法使用assert (socket.connect (..))
,因为我有多台服务器需要试用。
我的情况是,当一台服务器关闭时(无法连接而不是不稳定的网络),我将使用另一台服务器,因此我必须在连接时超时。
有什么建议吗?
修改
我找到了Lua TCP套接字,但由此,我无法检测到连接失败,
local tcp = socket.tcp()
tcp:settimeout(1)
tcp:connect(...)
答案 0 :(得分:5)
如果它不起作用,可能是因为你的luasocket太旧了,更新到版本2:
从LuaSocket 2.0开始,settimeout方法会影响connect的行为,导致它在超时的情况下返回错误。
(来源:http://w3.impa.br/~diego/software/luasocket/tcp.html#connect)