
socket_read 함수의 timeout 옵션을 설정하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0));
위 코드는 10초 이내에 데이터가 읽어오지 않으면 socket_read 함수를 다시 호출하도록 설정합니다.
socket_read 함수는 읽어온 데이터의 길이를 반환하지 않습니다. 대신, 읽어온 데이터의 길이를 반환하는 함수는 socket_recv 함수를 사용하는 것입니다.
#hostingforum.kr
php
$length = socket_recv($socket, $data, 1024, MSG_DONTWAIT);
위 코드는 1024바이트까지 읽어온 데이터의 길이를 반환합니다.
또한, 다른 방법으로 데이터를 읽어오기 위해서는 select 함수를 사용하는 것입니다.
#hostingforum.kr
php
$readable = @socket_select($read, $write, $except, 10);
위 코드는 10초 이내에 읽기 가능한 소켓이 있는지 확인합니다. 읽기 가능한 소켓이 있다면, socket_read 함수를 사용하여 데이터를 읽을 수 있습니다.
2025-04-01 10:28