라이브러리

[PHP] stream_set_timeout - 스트림에 대한 시간 초과 기간 설정




PHP Stream Set Timeout

PHP의 `stream_set_timeout` 함수는 소켓이나 파일 스트림에서 읽기 또는 쓰기 연산을 수행하는 동안의 최대 시간을 지정합니다. 이 시간이 초과되면, PHP는 예외를 발생시켜 연산을 중단합니다.

함수 시그니처

`stream_set_timeout(resource $stream, int $timeout)`

* `$stream`: 읽기 또는 쓰기 연산을 수행할 스트림 리소스입니다.
* `$timeout`: 소켓이나 파일 스트림에서 읽기 또는 쓰기 연산을 수행하는 동안의 최대 시간입니다. 단위는 초입니다.

예제

#hostingforum.kr
php

// TCP 소켓을 생성합니다.

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);



// 소켓에 타임아웃을 설정합니다.

socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 5, 'usec' => 0));



// 소켓에 데이터를 읽습니다. 5초 이내에 데이터를 읽지 못하면 예외가 발생합니다.

$data = socket_read($socket, 1024);

if ($data === false) {

    echo "타임아웃 발생
";

} else {

    echo "읽은 데이터: $data
";

}



// 소켓을 닫습니다.

socket_close($socket);



파일 스트림에 타임아웃 설정

파일 스트림에 타임아웃을 설정하는 방법은 다음과 같습니다.

#hostingforum.kr
php

// 파일 스트림을 열립니다.

$file = fopen('example.txt', 'r');



// 파일 스트림에 타임아웃을 설정합니다.

stream_set_timeout($file, 5);



// 파일 스트림에서 데이터를 읽습니다. 5초 이내에 데이터를 읽지 못하면 예외가 발생합니다.

$data = fread($file, 1024);

if ($data === false) {

    echo "타임아웃 발생
";

} else {

    echo "읽은 데이터: $data
";

}



// 파일 스트림을 닫습니다.

fclose($file);



주의 사항

* `stream_set_timeout` 함수는 스트림의 타임아웃을 설정하는 것이 아니라, 스트림에서 읽기 또는 쓰기 연산을 수행하는 동안의 타임아웃을 설정합니다.
* 타임아웃이 설정된 스트림에서 읽기 또는 쓰기 연산을 수행할 때, PHP는 예외를 발생시키지 않고 연산을 중단합니다.
* 타임아웃이 설정된 스트림에서 읽기 또는 쓰기 연산을 수행할 때, PHP는 `stream_set_timeout` 함수를 호출한 후에 연산을 수행합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 116 페이지

검색

게시물 검색