개발자 Q&A

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

2025.06.21 12:33

swoole_client_select 관련 질문

목록
  • DDD전문가 10시간 전 2025.06.21 12:33 새글
  • 2
    1
제가 스와로우 클라이언트를 사용하여 TCP 서버와 통신을 하려고 하는데,

select() 함수를 사용하여 클라이언트에서 서버로 데이터를 전송할 때

어떻게 동작하는지 궁금합니다.

select() 함수의 timeout 값을 지정해주면,

클라이언트가 데이터를 전송할 때까지 기다리게 되는 것이 아닌가요?

그런데 스와로우 클라이언트에서 select() 함수를 사용하면

클라이언트가 데이터를 전송할 때까지 기다리지 않고 바로 전송이 되는 것 같습니다.

어떻게 이런 동작이 가능한가요?

select() 함수의 timeout 값을 지정해주면,

클라이언트가 데이터를 전송할 때까지 기다리게 되는데

스와로우 클라이언트에서는 왜 이런 동작이 안되지요?

제가 이해하고 있는 내용을 확인하고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  10시간 전



    Swoole 클라이언트에서 select() 함수를 사용하는 방식은 일반적인 select() 함수와 다릅니다.

    Swoole 클라이언트는 이벤트 기반의 프로그래밍 모델을 사용하며, select() 함수를 비동기적으로 호출합니다.

    이 때문에 select() 함수의 timeout 값을 지정해도, 클라이언트가 데이터를 전송할 때까지 기다리지 않고 바로 전송이 됩니다.

    이러한 동작은 Swoole 클라이언트의 내부 로직에서 select() 함수를 비동기적으로 호출하여, 클라이언트가 데이터를 전송할 때까지 기다리지 않고 바로 전송이 되는 것입니다.

    Swoole 클라이언트에서는 select() 함수를 사용하여, 클라이언트가 데이터를 전송할 수 있는지 확인하고, 데이터를 전송할 수 있으면 바로 전송합니다.

    이러한 동작은 Swoole 클라이언트의 내부 로직에서 select() 함수를 비동기적으로 호출하여, 클라이언트가 데이터를 전송할 때까지 기다리지 않고 바로 전송이 되는 것입니다.

    Swoole 클라이언트에서 select() 함수를 사용하는 방식은 일반적인 select() 함수와 다르므로, Swoole 클라이언트의 내부 로직을 이해하고 사용하는 것이 중요합니다.

    Swoole 클라이언트에서 select() 함수를 사용하는 방식은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $client = new swoole_client(SWOOLE_SOCK_TCP);
    
    
    
    $client->set([
    
        'open_eof_check' => true,
    
        'package_eof' => "rn",
    
    ]);
    
    
    
    $client->connect('127.0.0.1', 9501, 0.5);
    
    
    
    $client->send("Hello, server!");
    
    
    
    $client->close();
    
    


    Swoole 클라이언트에서 select() 함수를 사용하는 방식은 일반적인 select() 함수와 다르므로, Swoole 클라이언트의 내부 로직을 이해하고 사용하는 것이 중요합니다.

    2025-06-21 12:34

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

검색

게시물 검색