所以,我有以下代码:
def LSCPHandler.send_message(message, hostname, port)
s = TCPSocket.open(hostname, port)
s.print message
ret = s.recv(1024)
s.close
LSCPHandler.parse_error(ret)
return ret
结尾
通常情况下,它工作得很好。我正在与之交谈的服务器通常会很快返回响应,并且一切都很好。
然后,今天,服务器出了点问题。不是我的问题,但是,这导致我的整个应用程序挂起,等待 recv 超时。这并不完全是最优的。
如果我没有立即听到回音,有没有办法让 recv 超时?我尝试查看 ruby 文档,但它真的让我感到困惑(即 TCPSocket 只实现了三个方法,它们都没有 open 或 recv,它的 Socket 父类也没有实现这些方法。而且 Socket 的父类似乎是 Object ? 我完全糊涂了)