除了 true 和 false 之外,如果您不夠小心,socket_set_block() 也可能會返回 NULL。當傳遞非 socket 資源作為第一個參數時,就會發生這種情況。
例如,socket_set_block(false)) 會返回 NULL 並發出警告,表示您正在嘗試對非 socket 進行操作。
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
socket_set_block — 設定 socket 的阻塞模式
socket_set_block() 函式會移除由 socket
參數指定的 socket 上的 O_NONBLOCK
旗標。
當在阻塞 socket 上執行操作(例如接收、發送、連線、接受等)時,腳本將會暫停執行,直到收到訊號或可以執行該操作為止。
範例 #1 socket_set_block() 範例
<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);
socket_accept($socket);
?>
此範例在所有介面上,連接埠 1223 建立一個監聽 socket,並將 socket 設定為 O_BLOCK
模式。 socket_accept() 將會持續等待,直到有連線可以接受。
除了 true 和 false 之外,如果您不夠小心,socket_set_block() 也可能會返回 NULL。當傳遞非 socket 資源作為第一個參數時,就會發生這種情況。
例如,socket_set_block(false)) 會返回 NULL 並發出警告,表示您正在嘗試對非 socket 進行操作。