查詢

socket_accept()函式—用法及示例

「 接受一個連線請求,並返回一個新的套接字資源,用於與客戶端進行通訊 」


函式名:socket_accept()

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

用法:socket_accept() 函式用於接受一個連線請求,並返回一個新的套接字資源,用於與客戶端進行通訊。

語法:resource socket_accept ( resource $socket )

引數:

  • $socket:必需,一個監聽套接字資源,由 socket_create() 或 socket_accept() 返回。

返回值:成功時返回一個新的套接字資源,用於與客戶端通訊。失敗時返回 FALSE,並可透過 socket_last_error() 獲取錯誤碼。

示例:

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

// 繫結套接字到 IP 地址和埠
socket_bind($socket, '127.0.0.1', 8080);

// 開始監聽連線
socket_listen($socket);

// 接受客戶端連線請求
$clientSocket = socket_accept($socket);

// 與客戶端進行通訊
while (true) {
    // 從客戶端接收資料
    $data = socket_read($clientSocket, 1024);

    // 處理資料

    // 向客戶端傳送響應
    socket_write($clientSocket, "Hello, client!");

    // 結束通訊
    if ($data === 'quit') {
        socket_close($clientSocket);
        break;
    }
}

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

上述示例中,我們建立了一個套接字並繫結到本地的 8080 埠。然後透過 socket_listen() 函式開始監聽連線。當有客戶端連線請求時,我們使用 socket_accept() 來接受連線,並返回一個新的套接字資源 $clientSocket。然後我們進入一個迴圈,透過 socket_read() 從客戶端接收資料,處理資料後透過 socket_write() 向客戶端傳送響應。如果接收到的資料為 "quit",則關閉與客戶端的連線並結束通訊。最後我們使用 socket_close() 關閉套接字。

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