2016-06-16 7 views
0

로컬 웹 서버 (arch linux, php7)에서 원격 네트워크로 요청하고 있습니다. 원격 네트워크에 연결할 수 없기 때문에 사용할 수 없습니다. 여기서 시간 초과가 무시됩니다 (예 : fsockopen은 지정된 제한 시간 인 5 초 대신에 약 23 초가 걸립니다). 다음fsockopen의 시간 제한은 언제 사용할 수 있습니까?

$timeout = 5; 
$start = time(); 
dbglog($start . ' timeout ' . $timeout); // 1466081215 timeout 5 
$socket = fsockopen($server,$port,$errno, $errstr, $timeout); 
$end = time(); 
dbglog($end . ' socket done in ' . ($end-$start) . ' seconds'); // 1466081238 socket done in 23 seconds 

official doku for fsockopen 상태 :

:

환경에 따라서는, 유닉스 도메인이나 선택 사항 인 연결 시간 초과 사용하지 못할 수 있습니다.

그러나 이는 선택 가능한 시간 제한을 사용할 수없는 환경에 관한 것입니다.

어디에서이 문제에 대한 최신 문서를 찾을 수 있습니까?

답변

0

소켓 유형에 따라 다릅니다. 로컬 유닉스 소켓의 경우, 모든 것이 프로세스 < -kernel-> process가 발생하기 때문에 시간 초과는별로 의미가 없습니다. 중간에 알 수없는 네트워크가 없습니다. 그래서 실패하거나 성공합니다. 그러나 소요 시간은 서버 부하에 따라 다릅니다.

+0

유일한 상황입니까? 로컬 웹 서버 (arch linux, php7)에서 원격 네트워크에 요청하고 있습니다.이 네트워크는 연결할 수 없기 때문에 사용할 수 없습니다. 여기서 타임 아웃은 무시되는 것처럼 보입니다. (어쩌면 그 정보로 질문을 수정해야합니다) –

+0

그리고 일부 코드를 공유하십시오. 문제가있는 최소한의 작업 예제 –

관련 문제