当前位置: 首页> 函数类别大全> stream_set_blocking

stream_set_blocking

为资源流设置阻塞或者阻塞模式
名称:stream_set_blocking
分类:Stream
所属语言:php
一句话介绍: 设置给定流的阻塞或非阻塞模式

函数名:stream_set_blocking()

适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7

用法:stream_set_blocking(resource $stream, bool $mode): bool

函数描述:stream_set_blocking()函数用于设置给定流的阻塞或非阻塞模式。

参数:

  • $stream:要设置模式的流资源。
  • $mode:指定流的模式。如果$mode为true,则流将被设置为阻塞模式;如果$mode为false,则流将被设置为非阻塞模式。

返回值:成功时返回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请求并读取响应。最后,关闭套接字流并输出响应内容。

通过将套接字流设置为非阻塞模式,我们可以在等待响应时继续执行其他操作,而不必等待服务器的响应。这对于处理大量并发请求或需要同时处理多个任务的情况非常有用。

同类函数
热门文章