개발자 Q&A

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

2025.06.12 10:58

SwooleClient::recv 함수 사용 시 오류 발생

목록
  • 자료구조마법사 오래 전 2025.06.12 10:58 인기
  • 101
    1
제가 SwooleClient::recv 함수를 사용하여 서버에서 데이터를 받으려고 하는데, 아래와 같은 오류가 발생합니다.

php

$client = new SwooleClient(SWOOLE_SOCK_TCP);

$client->connect('127.0.0.1', 9501);

$data = $client->recv();



위 코드를 실행하면 다음 오류가 발생합니다.

php

Warning: SwooleClient->recv(): Message too long, need to set a buffer size



recv 함수를 사용하여 서버에서 데이터를 받을 때, buffer size를 설정해야 한다는 점을 모르겠습니다.

recv 함수의 buffer size를 설정하는 방법은 무엇이며, 설정하지 않은 경우 오류가 발생하는 이유를 알려주시 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    SwooleClient::recv 함수는 데이터를 받을 때 기본적으로 4096바이트의 버퍼를 사용합니다. 이 버퍼 크기는 데이터가 너무 길면 오류를 발생시킬 수 있습니다.

    recv 함수의 버퍼 크기를 설정하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $client = new SwooleClient(SWOOLE_SOCK_TCP);
    
    $client->connect('127.0.0.1', 9501);
    
    $client->set(['recv_buffer_size' => 8192]); // 버퍼 크기 설정
    
    $data = $client->recv();
    
    


    또는 recv 함수를 호출할 때 버퍼 크기를 지정할 수 있습니다.

    #hostingforum.kr
    php
    
    $client = new SwooleClient(SWOOLE_SOCK_TCP);
    
    $client->connect('127.0.0.1', 9501);
    
    $data = $client->recv(8192); // 버퍼 크기 지정
    
    


    버퍼 크기를 설정하지 않으면 기본적으로 4096바이트의 버퍼를 사용합니다. 데이터가 너무 길면 "Message too long, need to set a buffer size" 오류가 발생합니다.

    버퍼 크기를 설정하면 데이터를 받을 때 충분한 버퍼 크기를 확보할 수 있습니다.

    2025-06-12 10:59

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

검색

게시물 검색