[c++] ZeroMQ 동기 통신

ZeroMQ는 메시지 전달에 중점을 둔 라이브러리로, 분산 애플리케이션을 빌드하기 위해 사용됩니다. C++에서 ZeroMQ를 사용하여 동기 통신을 구현하는 방법을 살펴보겠습니다.

ZeroMQ 라이브러리 설치

먼저, ZeroMQ 라이브러리를 설치해야 합니다. 다음과 같이 명령어를 사용하여 ZeroMQ를 설치할 수 있습니다.

sudo apt-get install libzmq3-dev

다른 운영 체제의 경우, 해당 운영 체제에 맞는 명령을 사용하여 라이브러리를 설치할 수 있습니다.

ZeroMQ 동기 통신 예제

다음은 ZeroMQ를 사용하여 C++에서 동기 통신을 구현하는 간단한 예제입니다.

발송자(Sender)

#include <zmq.hpp>
#include <string>

int main () {
    zmq::context_t context(1);
    zmq::socket_t socket(context, ZMQ_REQ);

    socket.connect("tcp://localhost:5555");

    std::string message = "Hello";

    zmq::message_t request(message.size());
    memcpy(request.data(), message.c_str(), message.size());
    socket.send(request);

    zmq::message_t reply;
    socket.recv(&reply);

    return 0;
}

수신자(Receiver)

#include <zmq.hpp>
#include <string>

int main () {
    zmq::context_t context(1);
    zmq::socket_t socket(context, ZMQ_REP);

    socket.bind("tcp://*:5555");

    zmq::message_t request;
    socket.recv(&request);

    // 처리 로직

    std::string response = "World";

    zmq::message_t reply(response.size());
    memcpy(reply.data(), response.c_str(), response.size());
    socket.send(reply);

    return 0;
}

결론

위의 예제에서는 ZeroMQ를 사용하여 C++에서 간단한 동기 통신을 구현하는 방법을 살펴보았습니다. ZeroMQ를 사용하면 강력하고 유연한 메시징 솔루션을 쉽게 구현할 수 있습니다.

더 많은 정보와 사용 예제는 ZeroMQ 공식 문서를 참조하세요.