函数名称:socket_listen()
适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
函数描述:socket_listen() 函数用于将一个套接字标记为被动套接字,开始监听连接请求。
语法:bool socket_listen ( resource $socket [, int $backlog = 0 ] )
参数:
- $socket:必需,套接字资源,通过 socket_create() 创建。
- $backlog:可选,指定最大等待连接的数量,默认为0,表示系统默认的连接队列长度。
返回值:成功时返回 true,失败时返回 false。
示例:
// 创建套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("套接字创建失败: " . socket_strerror(socket_last_error()));
}
// 绑定套接字到IP和端口
$bind = socket_bind($socket, '127.0.0.1', 8080);
if ($bind === false) {
die("套接字绑定失败: " . socket_strerror(socket_last_error($socket)));
}
// 开始监听连接请求
$listen = socket_listen($socket, 5);
if ($listen === false) {
die("监听失败: " . socket_strerror(socket_last_error($socket)));
}
echo "正在监听连接请求...\n";
// 接受客户端连接
$clientSocket = socket_accept($socket);
if ($clientSocket === false) {
die("接受连接失败: " . socket_strerror(socket_last_error($socket)));
}
echo "已接受客户端连接。\n";
// 关闭套接字
socket_close($socket);
在上面的示例中,我们首先创建了一个套接字,然后将其绑定到本地IP地址和端口。接下来,使用 socket_listen() 函数开始监听连接请求,它将套接字标记为被动套接字,并指定了最大等待连接的数量为5。然后,我们使用 socket_accept() 函数接受来自客户端的连接。
请注意,示例中的错误处理仅供参考,实际应用中可能需要根据具体情况进行适当的错误处理。