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

socket_set_timeout

stream_set_timeout的别名 - 在流上设置超时周期
名称:socket_set_timeout
分类:网络Network
所属语言:php
一句话介绍:Stream_set_timeout() 的别名。

socket_set_timeout

适用PHP版本

PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8

函数说明

socket_set_timeout() 函数用于设置一个套接字连接的超时时间,超时时间达到后,套接字操作会超时返回。它常用于网络通信中控制连接的等待时间,避免程序长时间阻塞。

函数语法

bool socket_set_timeout(resource $stream, int $seconds, int $microseconds = 0)

参数

  • $stream:有效的流资源,通常是 socket_create() 创建的资源或通过其他网络函数得到的流。
  • $seconds:超时时间的秒数部分,必须为非负整数。
  • $microseconds(可选):超时时间的微秒部分,默认值为 0。

返回值

成功时返回 TRUE,失败时返回 FALSE

示例

下面示例演示了如何创建一个 socket 连接,并为其设置 5 秒的超时时间。

示例代码

在此示例中,我们创建一个 TCP 连接到指定服务器,设置超时时间,之后可以使用该套接字进行读写操作,超时后会返回错误。

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "创建 socket 失败: " . socket_strerror(socket_last_error()) . "\n";
    exit;
}

socket_set_timeout($socket, 5);

$result = socket_connect($socket, 'www.example.com', 80);
if ($result === false) {
    echo "连接失败: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "连接成功,已设置超时时间为 5 秒。\n";
}

socket_close($socket);
同类函数
热门文章