溫馨提示×

如何設置php socket_accept的超時時間

PHP
小樊
81
2024-09-26 23:28:57
欄目: 編程語言

要設置 PHP 的 socket_accept 超時時間,您需要使用 stream_set_timeout 函數(shù)。以下是一個示例:

<?php
// 創(chuàng)建一個套接字
$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);
?>

在這個示例中,我們首先創(chuàng)建了一個監(jiān)聽在端口 8080 上的套接字。然后,我們使用 stream_set_timeout 函數(shù)設置了接收超時時間為 10 秒。這意味著如果在 10 秒內(nèi)沒有新的連接請求,socket_accept 將返回 false,并且 $conn 變量將為 null。

請注意,這個超時只適用于 socket_accept 函數(shù)。如果您需要在其他操作上設置超時,例如讀取或寫入數(shù)據(jù),您需要分別為這些操作調用 stream_set_timeout 函數(shù)。

0