개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.03 19:03

SwooleServer::listen() 함수에 대한 질문

목록
  • PWA전도사 11시간 전 2025.08.03 19:03 새글
  • 3
    1
제가 SwooleServer::listen() 함수를 사용하여 TCP 서버를 구현 중인데,

listen() 함수의 두 번째 인자인 backlog을 설정하는 방법에 대해 궁금합니다.

backlog을 설정하면 어떤 효과가 발생하나요?

또한, backlog을 설정하지 않을 경우에는 어떤 문제가 발생하나요?

제가 이해한 바에 따르면, backlog은 서버가 최대 몇 개의 연결을 수용할 수 있는지에 대한 설정인데,

이 설정이 정확한가요?

또한, 이 설정이 실제로 작동하는지 확인하는 방법은 무엇인가요?

제가 이해한 바가 맞는지 확인해 주시고, 추가로 설명해 주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  11시간 전



    SwooleServer::listen() 함수의 두 번째 인자인 backlog은 TCP 서버가 수용할 수 있는 최대 연결 큐의 크기를 설정하는 데 사용됩니다. backlog을 설정하면 서버가 수용할 수 있는 최대 연결 큐의 크기가 지정되며, 이 설정이 없으면 운영체제의 기본값이 적용됩니다.

    backlog을 설정하면 다음과 같은 효과가 발생합니다.

    - 서버가 수용할 수 있는 최대 연결 큐의 크기가 지정되며, 이 설정이 없으면 운영체제의 기본값이 적용됩니다.
    - backlog이 설정된 경우, 서버가 수용할 수 있는 최대 연결 큐의 크기가 지정되며, 이 설정이 없으면 운영체제의 기본값이 적용됩니다.

    backlog을 설정하지 않을 경우에는 다음과 같은 문제가 발생할 수 있습니다.

    - 운영체제의 기본값이 적용되며, 이 값이 너무 작을 경우, 서버가 수용할 수 있는 연결이 제한됩니다.
    - 운영체제의 기본값이 적용되며, 이 값이 너무 클 경우, 서버가 수용할 수 있는 연결이 과다하게 증가할 수 있습니다.

    backlog의 설정이 정확한가요?

    - 네, backlog의 설정은 서버가 수용할 수 있는 최대 연결 큐의 크기를 설정하는 데 사용됩니다.

    backlog의 설정이 실제로 작동하는지 확인하는 방법은 다음과 같습니다.

    - SwooleServer::listen() 함수를 호출할 때, backlog을 설정하고, 연결을 수용할 때, 연결 큐의 크기를 확인합니다.
    - SwooleServer::listen() 함수를 호출할 때, backlog을 설정하지 않고, 연결을 수용할 때, 연결 큐의 크기를 확인합니다.

    예제를 통해 확인해 보겠습니다.

    #hostingforum.kr
    php
    
    use SwooleServer;
    
    
    
    $server = new Server('127.0.0.1', 9501);
    
    
    
    $server->set([
    
        'worker_num' => 1,
    
        'backlog' => 128, // backlog을 설정
    
    ]);
    
    
    
    $server->on('connect', function ($server, $fd) {
    
        echo "Client: $fd connect.n";
    
    });
    
    
    
    $server->on('receive', function ($server, $fd, $from_id, $data) {
    
        echo "Client: $fd received message: $datan";
    
    });
    
    
    
    $server->on('close', function ($server, $fd) {
    
        echo "Client: $fd close.n";
    
    });
    
    
    
    $server->start();
    
    


    위 예제에서, backlog을 설정하여 서버가 수용할 수 있는 최대 연결 큐의 크기를 128으로 설정하였습니다. 연결을 수용할 때, 연결 큐의 크기를 확인할 수 있습니다.

    2025-08-03 19:04

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 41,273건 / 1 페이지

검색

게시물 검색