查詢

socket_listen()函式—用法及示例

「 將一個套接字標記為被動套接字,開始監聽連線請求 」


函式名稱:socket_listen()

適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7

函式描述:socket_listen() 函式用於將一個套接字標記為被動套接字,開始監聽連線請求。

語法:bool socket_listen ( resource $socket [, int $backlog = 0 ] )

引數:

  • $socket:必需,套接字資源,透過 socket_create() 建立。
  • $backlog:可選,指定最大等待連線的數量,預設為0,表示系統預設的連線佇列長度。

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

示例:

// 建立套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("套接字建立失敗: " . socket_strerror(socket_last_error()));
}

// 繫結套接字到IP和埠
$bind = socket_bind($socket, '127.0.0.1', 8080);
if ($bind === false) {
    die("套接字繫結失敗: " . socket_strerror(socket_last_error($socket)));
}

// 開始監聽連線請求
$listen = socket_listen($socket, 5);
if ($listen === false) {
    die("監聽失敗: " . socket_strerror(socket_last_error($socket)));
}

echo "正在監聽連線請求...\n";

// 接受客戶端連線
$clientSocket = socket_accept($socket);
if ($clientSocket === false) {
    die("接受連線失敗: " . socket_strerror(socket_last_error($socket)));
}

echo "已接受客戶端連線。\n";

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

在上面的示例中,我們首先建立了一個套接字,然後將其繫結到本地IP地址和埠。接下來,使用 socket_listen() 函式開始監聽連線請求,它將套接字標記為被動套接字,並指定了最大等待連線的數量為5。然後,我們使用 socket_accept() 函式接受來自客戶端的連線。

請注意,示例中的錯誤處理僅供參考,實際應用中可能需要根據具體情況進行適當的錯誤處理。

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