qinguoyi / TinyWebServer

:fire: Linux下C++轻量级WebServer服务器
Apache License 2.0
15.8k stars 3.8k forks source link

ET模式下,处理客户端发起的连接请求时候,while(1)如何跳出循环 #242

Closed alexstone42 closed 10 months ago

alexstone42 commented 11 months ago

这里不理解如何跳出循环,while(1)不是死循环么?

bool WebServer::dealclinetdata()
...
if (1 == m_LISTENTrigmode)
{
        while (1)
        {
                    int connfd = accept(m_listenfd, (struct sockaddr *)&client_address, &client_addrlength);
                    if (connfd < 0)
                    {
                        LOG_ERROR("%s:errno is:%d", "accept error", errno);
                        break;
                    }
                    if (http_conn::m_user_count >= MAX_FD)
                    {
                        utils.show_error(connfd, "Internal server busy");
                        LOG_ERROR("%s", "Internal server busy");
                        break;
                    }
                    timer(connfd, client_address);
        }
}
return false;