socket_accept
接受套接字上的連接
函數名:socket_accept()
適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
用法:socket_accept() 函數用於接受一個連接請求,並返回一個新的套接字資源,用於與客戶端進行通信。
語法:resource socket_accept ( resource $socket )
參數:
返回值:成功時返回一個新的套接字資源,用於與客戶端通信。失敗時返回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() 關閉套接字。