array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'function.socket-accept.php', 1 => 'socket_accept', ), 'up' => array ( 0 => 'ref.sockets.php', 1 => 'Socket 函数', ), 'prev' => array ( 0 => 'ref.sockets.php', 1 => 'Socket 函数', ), 'next' => array ( 0 => 'function.socket-addrinfo-bind.php', 1 => 'socket_addrinfo_bind', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'zh', 'path' => 'reference/sockets/functions/socket-accept.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_accept — 接受套接字上的连接
socket
是从 socket_create() 创建,使用
socket_bind() 绑定,socket_listen() 监听的一个套接字实例。此函数接受在
socket
上创建的连接。当连接被成功创建后,返回一个可用于通信的
Socket 实例。若有多个连接排队,返回队头第一个连接。若没有待处理的连接,那么
socket_accept() 默认阻塞,直到有一个连接出现。如果
socket
使用 socket_set_blocking() 或
socket_set_nonblock() 设置为非阻塞,那么
socket_accept() 将直接返回 false
。
socket_accept() 返回的 Socket 实例不能用于接受新的连接。但
socket
依然保持打开状态,并且可以继续接受新的连接。
成功时返回一个新的 Socket 实例,错误时返回 false
。可以通过调用
socket_last_error() 来检索实际的错误代码。将错误代码作为参数传递给
socket_strerror() 以获得错误的文本解释。