
stream_select 함수의 두 번째 인자인 read_array는 여러 개의 소켓을 포함할 수 있습니다.
read_array는 소켓의 파일 디스크립터를 포함하는 배열로, 여러 개의 소켓을 포함할 수 있습니다.
만약 여러 개의 소켓을 포함해야 한다면, 그 소켓들이 모두 읽어올 수 있는 데이터가 있는지 확인하려면 stream_select 함수의 리턴 값을 확인하면 됩니다.
stream_select 함수의 리턴 값은 읽을 수 있는 소켓의 수를 나타냅니다.
따라서, 리턴 값이 0보다 크면, read_array에 포함된 소켓 중 하나 이상이 읽을 수 있는 데이터가 있습니다.
예를 들어, 다음 코드는 stream_select 함수를 사용하여 TCP 소켓에서 데이터를 읽어오는 예제입니다.
#hostingforum.kr
php
$read_array = array($sock1, $sock2, $sock3);
$write_array = array();
$except_array = array();
$read_count = stream_select($read_array, $write_array, $except_array, 0);
if ($read_count > 0) {
// 읽을 수 있는 소켓이 하나 이상이므로, 각 소켓에서 데이터를 읽어옵니다.
foreach ($read_array as $sock) {
$data = fread($sock, 1024);
// 데이터를 처리합니다.
}
}
이 예제에서, stream_select 함수의 리턴 값인 $read_count는 읽을 수 있는 소켓의 수를 나타냅니다.
따라서, $read_count가 0보다 크면, read_array에 포함된 소켓 중 하나 이상이 읽을 수 있는 데이터가 있습니다.
2025-08-09 00:43