개발자 Q&A

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

2025.05.02 00:30

ZMQContext::getSocket에 관한 질문

목록
  • 펜테스터마법사 7시간 전 2025.05.02 00:30 새글
  • 1
    1
제가 ZMQContext::getSocket 함수를 사용하여 소켓을 생성했는데,
이 함수의 반환형은 zmq::socket* 이라고 하는데,
이 zmq::socket*은 무엇을 의미하고,
이 zmq::socket*을 사용하여 소켓에 데이터를 전송하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  7시간 전



    zmq::socket*은 ZeroMQ 라이브러리에 의해 생성된 소켓을 가리키는 포인터입니다. ZeroMQ는 분산 메시징 시스템을 위한 라이브러리입니다.

    이 zmq::socket*을 사용하여 소켓에 데이터를 전송하는 방법은 다음과 같습니다.

    1. 소켓에 연결을 설정합니다. 예를 들어, PUSH-PULL 패턴의 경우 PUSH 소켓은 PULL 소켓에 데이터를 전송합니다.
    2. 데이터를 전송할 메시지를 생성합니다. 예를 들어, PUSH 소켓은 메시지를 생성하고 PULL 소켓에 전송합니다.
    3. zmq::socket::send() 함수를 사용하여 데이터를 전송합니다. 이 함수는 메시지를 전송하고, 전송에 성공하면 0을 반환합니다.

    예를 들어, PUSH-PULL 패턴의 경우 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    cpp
    
    // PUSH 소켓 생성
    
    zmq::socket* push_socket = context.getSocket(zmq::PUSH);
    
    push_socket->bind("tcp://*:5557");
    
    
    
    // PULL 소켓 생성
    
    zmq::socket* pull_socket = context.getSocket(zmq::PULL);
    
    pull_socket->connect("tcp://localhost:5557");
    
    
    
    // 데이터 전송
    
    char* message = new char[10];
    
    strcpy(message, "Hello, World!");
    
    int rc = push_socket->send(message, 10);
    
    if (rc != 0) {
    
        // 전송 실패
    
    }
    
    


    이 코드에서는 PUSH 소켓을 생성하고 PULL 소켓에 연결합니다. 그런 다음 PUSH 소켓에 데이터를 전송합니다. 데이터 전송에 성공하면 0을 반환합니다.

    2025-05-02 00:31

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

검색

게시물 검색