[c++] ZeroMQ 연결 방법

ZeroMQ는 분산 응용프로그램을 위한 메시지 전달 시스템으로, C++, Python, Java 등 여러 언어로 사용할 수 있습니다. 이번에는 C++에서 ZeroMQ를 사용하는 방법에 대해 살펴보겠습니다.

필요한 라이브러리 설치

먼저 ZeroMQ 라이브러리를 설치해야 합니다. Windows에서는 vcpkg를 사용하여 설치할 수 있습니다. 아래의 명령어를 사용하여 ZeroMQ를 설치합니다.

vcpkg install zeromq

“publisher”와 “subscriber” 역할

ZeroMQ를 이용해 “publisher”와 “subscriber” 사이의 연결을 구현해보겠습니다. Publisher는 메시지를 발행하고, Subscriber는 이를 수신하는 역할을 합니다.

Publisher 예제

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

int main() {
    zmq::context_t context(1);
    zmq::socket_t publisher(context, ZMQ_PUB);
    publisher.bind("tcp://*:5556");

    while (true) {
        zmq::message_t message(5);
        memcpy(message.data(), "Hello", 5);
        publisher.send(message);
    }
}

Subscriber 예제

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

int main() {
    zmq::context_t context(1);
    zmq::socket_t subscriber(context, ZMQ_SUB);
    subscriber.connect("tcp://localhost:5556");
    subscriber.setsockopt(ZMQ_SUBSCRIBE, "", 0);

    while (true) {
        zmq::message_t message;
        subscriber.recv(&message);
        std::string data(static_cast<char*>(message.data()), message.size());
        std::cout << "Received: " << data << std::endl;
    }
}

이제 위 예제를 통해 ZeroMQ를 사용하여 C++로 publisher와 subscriber를 구현하는 방법을 알아보았습니다.

참고 자료

이제 ZeroMQ를 사용하여 C++에서 publisher와 subscriber를 구현하는 방법에 대해 알아보았습니다. ZeroMQ를 활용하여 분산 시스템을 구축하는 데 도움이 되길 바랍니다.