2025年5月18日 星期日 农历 后天是小满
查询

socket_listen()函数—用法及示例

「 将一个套接字标记为被动套接字,开始监听连接请求 」


函数名称: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() 函数接受来自客户端的连接。

请注意,示例中的错误处理仅供参考,实际应用中可能需要根据具体情况进行适当的错误处理。

补充纠错
上一个函数: socket_read()函数
下一个函数: socket_last_error()函数
热门PHP函数