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