函數名稱:stream_socket_accept()
函數適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
函數描述:stream_socket_accept()函數接受一個通過stream_socket_server()函數創建的socket連接,並返回一個新的socket連接用於與客戶端通信。
語法:resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] )
參數:
返回值:如果成功接受了客戶端連接,則返回一個新的socket資源,用於與客戶端通信。如果出錯,則返回false。
示例: <?php // 創建socket服務器$server = stream_socket_server('tcp://127.0.0.1:8080', $errno, $errstr);
if (!$server) { echo "無法創建socket服務器:$errstr ($errno)"; } else { echo "等待客戶端連接...\n";
// 接受客户端连接$client = stream_socket_accept($server); if (!$client) { echo "无法接受客户端连接"; } else { // 与客户端通信$message = "欢迎连接到服务器"; fwrite($client, $message); // 读取客户端发送的数据$data = fread($client, 1024); echo "接收到客户端数据:$data"; // 关闭客户端连接fclose($client); } // 关闭服务器fclose($server);
} ?> 以上示例中,首先使用stream_socket_server()函數創建了一個socket服務器,並綁定到本地的8080端口。然後使用stream_socket_accept()函數等待客戶端連接,並返回一個新的socket資源用於與客戶端通信。在與客戶端通信過程中,使用fwrite()函數向客戶端發送歡迎消息,並使用fread()函數讀取客戶端發送的數據。最後,使用fclose()函數關閉客戶端連接和服務器連接。