stream_socket_server
创建Internet或Unix域服务器套接字
PHP 4.3.0 及以上版本。
stream_socket_server 函数创建一个服务器端的套接字,并为其分配一个监听端口。该函数用于在指定的地址和端口上监听连接请求,常用于实现 TCP 或 UDP 服务器。
stream_socket_server(string $address, int &$error_code = null, string &$error_message = null, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, resource $context = null): resource|false
如果成功,返回一个资源类型的流(服务器端的套接字)。如果失败,返回 false,并且可以通过$error_code和$error_message获取错误信息。
以下是一个简单的例子,创建一个TCP服务器,并监听客户端连接:
<?php $address = 'tcp://127.0.0.1:8080'; $server = stream_socket_server($address, $error_code, $error_message); if ($server === false) { echo "错误:$error_message ($error_code)\n"; } else { echo "服务器已启动,等待连接...\n"; // 接受客户端连接 $client = stream_socket_accept($server); if ($client) { fwrite($client, "欢迎连接到服务器!\n"); fclose($client); } fclose($server); } ?>
在该示例中,首先通过调用 stream_socket_server 创建一个 TCP 服务器,并指定监听的地址和端口(127.0.0.1:8080)。如果服务器创建成功,代码会输出“服务器已启动,等待连接...”。然后,服务器通过 stream_socket_accept 等待客户端连接。客户端连接后,向客户端发送一条欢迎信息,并关闭连接。