函式名:socket_create_listen()
適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
函式描述:socket_create_listen() 函式建立一個監聽套接字,用於接受進來的連線請求。
語法:resource socket_create_listen ( int $port [, int $backlog = 128 ] )
引數:
- port:要監聽的埠號。
- backlog(可選):指定等待連線佇列的最大長度,如果未指定,預設為128。
返回值:成功時返回一個監聽套接字資源,失敗時返回 FALSE。
示例:
$host = 'localhost';
$port = 8000;
$socket = socket_create_listen($port);
if ($socket === false) {
echo "無法建立監聽套接字: " . socket_strerror(socket_last_error()) . PHP_EOL;
exit;
}
echo "正在監聽 {$host}:{$port}..." . PHP_EOL;
while (true) {
$clientSocket = socket_accept($socket);
if ($clientSocket === false) {
echo "無法接受連線請求: " . socket_strerror(socket_last_error($socket)) . PHP_EOL;
break;
}
// 處理客戶端請求...
socket_close($clientSocket);
}
socket_close($socket);
以上示例中,我們建立了一個監聽套接字,並在指定的埠上監聽連線請求。然後,透過迴圈等待客戶端的連線請求,並在接受連線後進行相應的處理。在處理完成後,關閉客戶端套接字,繼續監聽其他連線請求。最後,關閉監聽套接字。