查询

socket_accept()函数—用法及示例

「 接受一个连接请求,并返回一个新的套接字资源,用于与客户端进行通信 」


函数名:socket_accept()

适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7

用法:socket_accept() 函数用于接受一个连接请求,并返回一个新的套接字资源,用于与客户端进行通信。

语法:resource socket_accept ( resource $socket )

参数:

  • $socket:必需,一个监听套接字资源,由 socket_create() 或 socket_accept() 返回。

返回值:成功时返回一个新的套接字资源,用于与客户端通信。失败时返回 FALSE,并可通过 socket_last_error() 获取错误码。

示例:

// 创建套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// 绑定套接字到 IP 地址和端口
socket_bind($socket, '127.0.0.1', 8080);

// 开始监听连接
socket_listen($socket);

// 接受客户端连接请求
$clientSocket = socket_accept($socket);

// 与客户端进行通信
while (true) {
    // 从客户端接收数据
    $data = socket_read($clientSocket, 1024);

    // 处理数据

    // 向客户端发送响应
    socket_write($clientSocket, "Hello, client!");

    // 结束通信
    if ($data === 'quit') {
        socket_close($clientSocket);
        break;
    }
}

// 关闭套接字
socket_close($socket);

上述示例中,我们创建了一个套接字并绑定到本地的 8080 端口。然后通过 socket_listen() 函数开始监听连接。当有客户端连接请求时,我们使用 socket_accept() 来接受连接,并返回一个新的套接字资源 $clientSocket。然后我们进入一个循环,通过 socket_read() 从客户端接收数据,处理数据后通过 socket_write() 向客户端发送响应。如果接收到的数据为 "quit",则关闭与客户端的连接并结束通信。最后我们使用 socket_close() 关闭套接字。

补充纠错
上一个函数: socket_addrinfo_bind()函数
下一个函数: SoapServer::__construct()函数
热门PHP函数
分享链接