0
이 기능은 내가 원했던대로 작동하지 않습니다.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
서버 (호스트)가 느려지거나 존재하지 않으면 위 예제는 현재 스크립트를 잠급니다. 시간 초과되지 않습니다. 왜 그런가? 내가
그것은 서버 (호스트)가 존재하는 경우로 aspected하게 작동하는 루비 1.9.2를 사용하고 있습니다
.
FWIW, ruby 1.9.3p0 (2011-10-30) [x86_64-linux]에서 작동합니다. – Sam