socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_listen监听套接字上的连接

描述

socket_listen(Socket $socket, int $backlog = 0): bool

在使用 socket_create() 创建套接字 socket 并在 socket_bind() 的帮助下将其绑定到名称之后,可以告知它监听 socket 上的传入连接。

socket_listen() 仅适用于类型为 SOCK_STREAMSOCK_SEQPACKET 的套接字。

参数

socket

使用 socket_create()socket_addrinfo_bind() 创建的 Socket 实例

backlog

最多 backlog 个传入连接将被排队以供处理。如果连接请求到达时队列已满,客户端可能会收到一个错误,指示 ECONNREFUSED,或者,如果底层协议支持重传,则请求可能会被忽略,以便重试能够成功。

注意:

传递给 backlog 参数的最大值高度依赖于底层平台。在 Linux 上,它会被静默截断为 SOMAXCONN。在 win32 上,如果传递 SOMAXCONN,负责套接字的底层服务提供商将把 backlog 设置为最大 *合理的* 值。在这个平台上,没有标准的规定来找出实际的 backlog 值。

返回值

成功时返回 true,失败时返回 false。可以使用 socket_last_error() 获取错误代码。该代码可以传递给 socket_strerror() 以获得错误的文本解释。

变更日志

版本 描述
8.0.0 socket 现在是一个 Socket 实例;之前,它是一个 resource

参见

添加注释

用户贡献的注释 1 个注释

-2
renmengyang567 at gmail dot com
5 年前
<?php
// 为 tcp 创建
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_bind($sock, '127.0.0.1',5000);
socket_listen($sock,1);
sleep(20);
?>

<fruit>
netstat -ntpl
活动 Internet 连接(仅服务器)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 1839/php
To Top