查詢

socket_set_timeout()函式—用法及示例

「 設定給定套接字的超時時間 」


函式名稱:socket_set_timeout()

適用版本:所有PHP版本

用法:socket_set_timeout(resource $socket, int $seconds, int $microseconds = 0): bool

函式描述:socket_set_timeout() 函式用於設定給定套接字的超時時間。超時時間指定了在讀取或寫入操作時等待資料的最長時間。

引數:

  • $socket:必需,一個有效的套接字資源,透過 socket_create() 或 socket_accept() 等函式建立。
  • $seconds:必需,指定超時時間的秒數。如果設定為0,表示禁用超時。
  • $microseconds:可選,指定超時時間的微秒數。預設為0。

返回值:成功時返回 true,失敗時返回 false。

示例:

// 建立套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// 設定超時時間為10秒
if (socket_set_timeout($socket, 10) === false) {
    echo "設定超時時間失敗";
}

// 連線到伺服器
if (socket_connect($socket, '127.0.0.1', 8080) === false) {
    echo "連線伺服器失敗";
}

// 傳送資料
$data = "Hello, server!";
if (socket_write($socket, $data, strlen($data)) === false) {
    echo "傳送資料失敗";
}

// 讀取伺服器響應,最多等待5秒
if (($response = socket_read($socket, 1024)) === false) {
    echo "讀取伺服器響應失敗";
}

// 關閉套接字
socket_close($socket);

在上面的示例中,我們首先建立了一個套接字,然後使用 socket_set_timeout() 函式設定超時時間為10秒。接下來,我們使用 socket_connect() 函式連線到伺服器,並使用 socket_write() 函式傳送資料。然後,使用 socket_read() 函式讀取伺服器的響應,最多等待5秒。最後,我們使用 socket_close() 函式關閉套接字。

注意:在實際使用中,根據具體需求,可以根據實際情況調整超時時間的設定。

補充糾錯
上一個函式: socket_strerror()函式
下一個函式: socket_set_option()函式
熱門PHP函式
分享連結