2013-07-31 2 views
7

코코아의 NSURLRequest 클래스 (iOS docs, OS X docs)는 timeoutInterval 속성을가집니다. 문서 상태언제 NSURLRequest가 시간 초과됩니까?

연결 시도 중에 요청이 제한 시간보다 오래 유휴 상태 인 경우 요청 시간이 초과 된 것으로 간주됩니다.

여기서 '유휴'란 무엇입니까? 내가 말할 수있는 한 실제로 이것이 의미하는 바는, 30 초 timeoutInterval을 설정하고 NSURLRequest을 보내는 메서드를 호출하면 HTTP 응답의 본문이 요청을 보낸 후 30 초를 반환하지 않은 경우 요청 시간 초과. 하지만 실제로 그렇게되고 있습니까?

내가 생각할 수있는 몇 가지 사실은 유휴 타이머가 재설정되도록 트리거 할 수 있습니다. HTTP 헤더를 수신하거나 본문 부분을 수신합니다. 그러나 현실적으로 문제가되는 것은 어느 것입니까?

답변

1

30 초 동안받은 바이트가 정상적인 정의가 아닙니다. 매우 간단한 HTTP 서버 (예제 프로젝트가 있습니다)를 작성하고 개인 포트에서 실행 한 다음 연결하여 직접 증명할 수 있어야합니다.

서버에서 시간 초과를 시뮬레이트하려면 클라이언트를 약속하는 바이트에 "40"또는 일부 상수를 추가하기 만하면 클라이언트는 앞으로 오지 않을 마지막 40 바이트 여분 바이트를 영원히 기다립니다.

관련 문제