그래서, 나는 다음과 같은 코드가 반환하지 :루비 TCPSocket의 recv를 차단 결코
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 시간 초과 방법이 있습니까? 나는 루비 문서를 보았지만 정말 혼란 스럽다. (즉, TCPSocket은 세 가지 메소드 만 구현한다. 아무 것도 열거 나 recv가 없으며 Socket의 부모 클래스는이 메소드를 구현하지 않는다.) 그리고 Socket의 부모 클래스는 Object ? 완전히 혼란 스러워요.)