socket_set_timeout
stream_set_timeout的别名 - 在流上设置超时周期
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)
成功时返回 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);