라이브러리
[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` 함수를 호출한 후에 연산을 수행합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.