0
我有这个sniped,不会按我想要的那样工作。UDP套接字不会超时
def send(data)
socket = UDPSocket.open
Timeout::timeout(1.2) {
socket.send(data, 0, host, port)
resp = if select([socket], nil, nil, 3)
socket.recvfrom_nonblock(65536)
end
}
end
如果服务器(主机)缓慢或不存在,上述示例将锁定当前脚本。 它不会超时。任何想法为什么?
我使用Ruby 1.9.2
它的工作原理当服务器(主机)存在的aspected。
FWIW,这个工程在ruby 1.9.3p0(2011-10-30)[x86_64-linux]。 – Sam 2011-12-22 16:50:29