array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'function.socket-listen.php', 1 => 'socket_listen', ), 'up' => array ( 0 => 'ref.sockets.php', 1 => 'Socket 函数', ), 'prev' => array ( 0 => 'function.socket-last-error.php', 1 => 'socket_last_error', ), 'next' => array ( 0 => 'function.socket-read.php', 1 => 'socket_read', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'zh', 'path' => 'reference/sockets/functions/socket-listen.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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() 以获得错误的文本解释。