English | 简体中文 | 繁體中文
查询

stream_set_timeout()函数—用法及示例

「 设置指定流的超时时间 」


函数名称:stream_set_timeout()

适用版本:PHP 4, PHP 5, PHP 7

用法:stream_set_timeout(resource $stream, int $seconds, int $microseconds = 0): bool

函数描述:stream_set_timeout() 用于设置指定流的超时时间。超时时间指定了在读取或写入流时等待数据的最长时间。如果在超时时间内没有读取或写入任何数据,函数将返回 false。

参数:

  • $stream:要设置超时时间的流资源。
  • $seconds:超时时间的秒数部分。如果设置为 0,则表示没有超时限制。
  • $microseconds:超时时间的微秒数部分。默认值为 0。

返回值:如果成功设置超时时间,则返回 true;否则返回 false。

示例:

// 创建一个 TCP 客户端连接
$socket = stream_socket_client('tcp://www.example.com:80', $errno, $errstr, 30);
if (!$socket) {
    die("连接失败: $errstr ($errno)");
}

// 设置超时时间为5秒
if (stream_set_timeout($socket, 5) === false) {
    die("设置超时时间失败");
}

// 发送HTTP请求
$request = "GET / HTTP/1.1\r\n";
$request .= "Host: www.example.com\r\n";
$request .= "Connection: close\r\n\r\n";
fwrite($socket, $request);

// 读取响应
$response = '';
while (!feof($socket)) {
    $response .= fread($socket, 8192);
}

// 关闭连接
fclose($socket);

echo $response;

在上面的示例中,我们首先使用 stream_socket_client() 函数创建了一个 TCP 客户端连接。然后,使用 stream_set_timeout() 函数将超时时间设置为 5 秒。接下来,我们发送了一个 HTTP 请求并读取了服务器的响应。最后,关闭了连接并打印出响应内容。

请注意,设置超时时间仅适用于读取和写入操作,并不会影响连接的建立或关闭过程。

补充纠错
上一个函数: stream_set_write_buffer()函数
下一个函数: stream_set_read_buffer()函数
热门PHP函数
分享链接