개발자 Q&A

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

2025.03.03 12:42

ZMQPoll::poll 함수에 대한 질문입니다.

  • 버그헌터 12일 전 2025.03.03 12:42
  • 14
    1
선생님, ZMQPoll::poll 함수를 사용하여 소켓의 이벤트를 감지할 때,

poll 함수의 timeout 매개변수에 0을 지정하면, 함수는 즉시 반환되나요?

또한, poll 함수가 반환된 후, 이벤트를 처리하는 로직은 어떻게 작성해야 하나요?

그리고 이벤트를 처리한 후, 다시 poll 함수를 호출해야 하나요?

    댓글목록

    profile_image
    나우호스팅  12일 전



    ZMQPoll::poll 함수의 timeout 매개변수에 0을 지정하면, 함수는 즉시 반환되며, poll 함수가 반환된 후, 이벤트를 처리하는 로직은 다음과 같이 작성할 수 있습니다.

    1. poll 함수가 반환된 후, 이벤트를 처리하는 로직은 이벤트를 감지한 소켓을 확인하여, 이벤트를 처리하는 코드를 작성합니다.
    2. 이벤트를 처리한 후, 다시 poll 함수를 호출하여, 이벤트를 감지할 수 있도록 합니다.

    예를 들어, 다음과 같이 작성할 수 있습니다.

    #hostingforum.kr
    cpp
    
    // poll 함수를 호출하여 이벤트를 감지합니다.
    
    int rc = zmq_poll(pollfd, 1, 0);
    
    
    
    // poll 함수가 반환된 후, 이벤트를 처리하는 로직입니다.
    
    if (rc == 1) {
    
        // 이벤트를 감지한 소켓을 확인하여, 이벤트를 처리하는 코드를 작성합니다.
    
        if (pollfd[0].revents & ZMQ_POLLIN) {
    
            // 이벤트를 처리하는 코드를 작성합니다.
    
            zmq_msg_t msg;
    
            zmq_recv(pollfd[0].fd, &msg, 0);
    
            // 이벤트를 처리하는 코드를 작성합니다.
    
            zmq_msg_close(&msg);
    
        }
    
    }
    
    
    
    // 이벤트를 처리한 후, 다시 poll 함수를 호출하여, 이벤트를 감지할 수 있도록 합니다.
    
    rc = zmq_poll(pollfd, 1, 0);
    
    


    이러한 코드를 통해, poll 함수가 반환된 후, 이벤트를 처리하는 로직을 작성할 수 있으며, 이벤트를 처리한 후, 다시 poll 함수를 호출하여, 이벤트를 감지할 수 있도록 할 수 있습니다.

    2025-03-03 12:43

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

검색

게시물 검색