socket_listen
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_listen — 监听套接字的连接
说明
socket_create() 创建套接字 socket
并通过 socket_bind() 绑定名称后,可以监听 socket
收到的连接。
socket_listen() 仅适用于 SOCK_STREAM
或 SOCK_SEQPACKET
类型的套接字。
参数
socket
-
由 socket_create() 或 socket_addrinfo_bind() 创建的套接字实例。
backlog
-
backlog
指定处理连接请求队列的最大值。如果一个连接请求到达时队列已满,客户端可能会收到ECONNREFUSED
的错误提示。若底层协议支持重传,则忽略该请求,以便重试成功。。注意:
传递给
backlog
参数的最大值取决于底层平台。Linux 中,超过最大值将默认截取为SOMAXCONN
。win32 中,如果超过SOMAXCONN
的值,负责套接字的底层服务将把 backlog 设置为最大的 reasonable 合理值,在此平台上,没有提供可以找到 backlog 实际值的标准描述。
返回值
成功时返回 true
, 或者在失败时返回 false
。 可以通过 socket_last_error()
来检索错误码。将错误码作为参数传递给 socket_strerror() 以获得错误的文本解释。
参见
- socket_accept() - 接受套接字上的连接
- socket_bind() - 给套接字绑定名字
- socket_connect() - 开启一个套接字连接
- socket_create() - 创建一个套接字(通讯节点)
- socket_strerror() - 返回描述套接字错误的字符串
- socket_addrinfo_bind() - 从给定的 addrinfo 创建并绑定一个套接字
用户贡献的备注 1 note
<?php
// create for 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
Active Internet connections (only servers)
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
备份地址:http://www.lvesu.com/blog/php/function.socket-listen.php