[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 공식 문서를 참조하세요.