stream_set_blocking
자원 흐름에 대한 차단 또는 차단 모드를 설정하십시오
함수 이름 : stream_set_blocking ()
해당 버전 : PHP 4> = 4.3.0, PHP 5, PHP 7
사용법 : stream_set_blocking (resource $ stream, bool $ mode) : bool
함수 설명 : stream_set_blocking () 함수는 주어진 스트림의 차단 또는 비 블로킹 모드를 설정하는 데 사용됩니다.
매개 변수 :
반환 값 : 성공시 사실, 실패에 대한 거짓.
예:
// 创建一个网络套接字流$socket = stream_socket_client('tcp://www.example.com:80', $errno, $errstr, 30); // 将套接字流设置为非阻塞模式if (!stream_set_blocking($socket, false)) { die('无法设置套接字流为非阻塞模式'); } // 发送HTTP请求fwrite($socket, "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: Close\r\n\r\n"); // 读取响应$response = ''; while (!feof($socket)) { $response .= fread($socket, 8192); } // 关闭套接字流fclose($socket); echo $response;
위의 예에서는 먼저 네트워크 소켓 스트림을 생성 한 다음 Stream_set_blocking () 함수를 사용하여 소켓 스트림을 비 블로킹 모드로 설정합니다. 다음으로 HTTP 요청을 보내고 응답을 읽습니다. 마지막으로 소켓 스트림을 닫고 응답 내용을 출력하십시오.
소켓 스트림을 비 블로킹 모드로 설정하면 서버의 응답을 기다리지 않고 응답을 기다리는 동안 다른 작업을 계속 수행 할 수 있습니다. 이는 많은 동시 요청을 처리하거나 여러 작업을 동시에 처리 해야하는 경우에 매우 유용합니다.