函数名:stream_set_blocking()
适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
用法:stream_set_blocking(resource $stream, bool $mode): bool
函数描述:stream_set_blocking()函数用于设置给定流的阻塞或非阻塞模式。
参数:
返回值:成功时返回true,失败时返回false。
示例:
// 创建一个网络套接字流
$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请求并读取响应。最后,关闭套接字流并输出响应内容。
通过将套接字流设置为非阻塞模式,我们可以在等待响应时继续执行其他操作,而不必等待服务器的响应。这对于处理大量并发请求或需要同时处理多个任务的情况非常有用。