2012-03-20 3 views
2

나는 루프에서 ... 간단한 소켓 PHP를 서버 스크립트 호출 5.3 스크립트 ...

socket_select($read_set, $write_set, $exception_set, 2); 

을 만들었습니다. 비 블로킹 소켓을 사용 중이며 스크립트는 Win7 시스템에서 실행 중입니다.

문제 :이 기능은 스크립트를 2 초 동안 차단합니다. 이것은 네 번째 매개 변수 ($ tv_sec)가이 블록을 유발한다는 것을 의미합니다.

내 질문 : $tv_sec 또는 $tv_usec의 차이점은 무엇입니까? $tv_usec의 기능은 무엇입니까? PHP 매뉴얼에

Function description

:

socket_select(array&$read, array&$write, array&$ex, int $tv_sec[,int $tv_usec=0]) 

tv_sec가 : tv_sec가와 함께 tv_usec는 시간 제한 파라미터를 구성한다. timeout은 socket_select()가 리턴되기까지 경과 된 시간의 상한입니다. tv_sec는 0 일 수 있으므로 socket_select()가 즉시 반환됩니다. 이는 폴링에 유용합니다. tv_sec가 NULL (시간 제한 없음)이면 socket_select()가 무기한 차단 될 수 있습니다.

tv_usec는 : 대한 설명이 없습니다

답변

1

당신이 마이크로 주어진 양의 후에 시간 초과하는 socket_select() 함수를 원하는 경우 $ tv_usec는 매개 변수가 사용됩니다. 예를 들어, 선택 항목이 1 초 미만으로 시간 초과되도록하려면이 옵션이 유용합니다.

+0

좋습니다, 알았습니다 : usec = 마이크로 초, 감사합니다! – Mike