函式名:socket_atmark()
適用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7
用法:bool socket_atmark ( resource $socket )
說明:socket_atmark() 函式用於檢查套接字是否處於帶外優先標記位置。帶外優先標記是指在套接字的輸入緩衝區中的下一個資料位元組是一個帶外資料。此函式用於非阻塞套接字,可用於確定是否可以立即讀取帶外資料。
引數:
- $socket:套接字資源,透過 socket_create() 建立。
返回值:
- 如果套接字處於帶外優先標記位置,則返回 true;否則返回 false。
示例:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() 失敗:" . socket_strerror(socket_last_error()) . "\n";
}
$result = socket_connect($socket, '127.0.0.1', 80);
if ($result === false) {
echo "socket_connect() 失敗:" . socket_strerror(socket_last_error($socket)) . "\n";
}
// 檢查套接字是否處於帶外優先標記位置
$isAtMark = socket_atmark($socket);
if ($isAtMark === true) {
echo "套接字處於帶外優先標記位置\n";
} else {
echo "套接字不處於帶外優先標記位置\n";
}
socket_close($socket);
注意:在示例中,我們首先建立一個套接字並連線到 127.0.0.1 的 80 埠。然後使用 socket_atmark() 函式檢查套接字是否處於帶外優先標記位置,並根據返回值輸出相應的資訊。最後,關閉套接字。