socket_accept
接受套接字上的连接
PHP 4.0.0及更高版本。
socket_accept()用于接受一个已经监听的套接字连接。当服务器端套接字等待客户端的连接时,调用此函数可以接受一个连接并返回一个新的套接字资源,用于与客户端进行通信。
socket_accept(resource $socket)
$socket (资源类型):指定一个已连接的套接字资源,通常是通过socket_create()和socket_bind()进行初始化和监听的套接字。
如果成功,返回一个新的套接字资源,用于与客户端进行通信。若失败,返回false,并设置错误码。
以下是一个使用socket_accept的简单示例:
// 创建TCP套接字 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "无法创建套接字\n"; exit; } <p>// 绑定端口和IP地址<br> $bind = socket_bind($socket, '127.0.0.1', 8080);<br> if ($bind === false) {<br> echo "无法绑定套接字\n";<br> exit;<br> }</p> <p>// 开始监听<br> $listen = socket_listen($socket, 5);<br> if ($listen === false) {<br> echo "无法监听\n";<br> exit;<br> }</p> <p>echo "等待客户端连接...\n";</p> <p>// 等待并接受客户端连接<br> $clientSocket = socket_accept($socket);<br> if ($clientSocket === false) {<br> echo "连接失败\n";<br> } else {<br> echo "客户端已连接\n";<br> }</p> <p>// 关闭客户端连接<br> socket_close($clientSocket);<br> socket_close($socket);<br>
在该示例中,首先创建了一个TCP套接字,并将其绑定到IP地址127.0.0.1和端口8080。然后,套接字开始监听客户端连接。接下来,使用socket_accept()来接受一个客户端连接,并返回一个新的套接字资源。如果连接成功,可以通过该新的套接字与客户端进行通信。最后,关闭与客户端的连接。