C++
cppzmq
Github | https://github.com/zeromq/cppzmq |
---|
libzmq 的纯头文件 C++ 绑定。
示例
#include <string>
#include <zmq.hpp>
int main()
{
zmq::context_t ctx;
zmq::socket_t sock(ctx, zmq::socket_type::push);
sock.bind("inproc://test");
const std::string_view m = "Hello, world";
sock.send(zmq::buffer(m), zmq::send_flags::dontwait);
}
zmqpp
Github | https://github.com/zeromq/zmqpp |
---|
这个 0mq/zmq 的 C++ 绑定是一个“高级”库,它隐藏了 0mq 核心提供的 C 风格接口的大部分内容。它由位于 zmq 目录中的许多头文件和源文件组成,这些文件根据 MPLv2 许可证提供(详见 LICENSE)。
azmq
Github | https://github.com/zeromq/azmq |
---|
azmq 库为 ZeroMQ 提供了 Boost Asio 风格的绑定。
示例
#include <azmq/socket.hpp>
#include <boost/asio.hpp>
#include <array>
namespace asio = boost::asio;
int main(int argc, char** argv) {
asio::io_service ios;
azmq::sub_socket subscriber(ios);
subscriber.connect("tcp://192.168.55.112:5556");
subscriber.connect("tcp://192.168.55.201:7721");
subscriber.set_option(azmq::socket::subscribe("NASDAQ"));
azmq::pub_socket publisher(ios);
publisher.bind("ipc://nasdaq-feed");
std::array<char, 256> buf;
for (;;) {
auto size = subscriber.receive(asio::buffer(buf));
publisher.send(asio::buffer(buf));
}
return 0;
}
czmqpp
Github | https://github.com/zeromq/czmqpp |
---|
czmq 的 C++ 包装器。目标是保持最小化、简单和一致。