要設置 PHP 的 socket_accept
超時時間,您需要使用 stream_set_timeout
函數。以下是一個示例:
<?php
// 創建一個套接字
$socket = stream_socket_server("tcp://0.0.0.0:8080", $errno, $errstr);
if (!$socket) {
echo "Error: $errstr ($errno)<br />\n";
exit();
}
// 設置接收超時時間(單位:秒)
$timeout = 10; // 例如,設置為 10 秒
stream_set_timeout($socket, $timeout);
echo "Server listening on port 8080...\n";
while ($conn = @socket_accept($socket)) {
// 處理連接的代碼
fclose($conn);
}
// 關閉套接字
fclose($socket);
?>
在這個示例中,我們首先創建了一個監聽在端口 8080 上的套接字。然后,我們使用 stream_set_timeout
函數設置了接收超時時間為 10 秒。這意味著如果在 10 秒內沒有新的連接請求,socket_accept
將返回 false,并且 $conn
變量將為 null。
請注意,這個超時只適用于 socket_accept
函數。如果您需要在其他操作上設置超時,例如讀取或寫入數據,您需要分別為這些操作調用 stream_set_timeout
函數。