
stream_select 함수는 여러 소켓에 대해 읽기/쓰기 가능 여부를 체크하는 함수입니다.
read_set 매개변수는 읽기 가능한 소켓 목록을 포함하고, write_set 매개변수는 쓰기 가능한 소켓 목록을 포함합니다.
stream_select 함수의 반환값은 읽기/쓰기 가능한 소켓 목록을 포함하며, 이 목록은 read_set과 write_set의 합집합입니다.
error_set 매개변수는 에러가 발생한 소켓 목록을 포함하며, stream_select 함수의 반환값에 포함되지 않습니다.
따라서, stream_select 함수를 사용하여 TCP 소켓에서 데이터를 읽는 데 어려움을 겪는다면, stream_select 함수의 반환값을 정확하게 이해하고, error_set을 별도로 체크하는 것이 중요합니다.
예를 들어, 다음 코드는 stream_select 함수를 사용하여 TCP 소켓에서 데이터를 읽는 방법을 보여줍니다.
#hostingforum.kr
php
$read_set = array($sock1, $sock2);
$write_set = array($sock3);
$error_set = array();
$readable = stream_select($read_set, $write_set, $error_set, 0);
if ($readable) {
foreach ($read_set as $sock) {
$data = fread($sock, 1024);
// 데이터 처리
}
}
if ($write_set) {
foreach ($write_set as $sock) {
fwrite($sock, 'Hello, world!');
}
}
if ($error_set) {
foreach ($error_set as $sock) {
// 에러 처리
}
}
이 코드는 stream_select 함수를 사용하여 읽기/쓰기 가능한 소켓 목록을 체크하고, 읽기/쓰기 가능한 소켓에 대해 데이터를 읽거나 쓰는 방법을 보여줍니다.
error_set을 별도로 체크하여 에러가 발생한 소켓에 대해 처리하는 방법을 보여줍니다.
2025-05-13 02:43