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。
參數:
返回值:如果成功設置超時時間,則返回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 請求並讀取了服務器的響應。最後,關閉了連接並打印出響應內容。
請注意,設置超時時間僅適用於讀取和寫入操作,並不會影響連接的建立或關閉過程。