Я новичок в ZMQ и уже сделал учебники о шаблоне публикации подписки. Но для моей заявки они не совсем применимы. У меня есть два типа приложений. В приложении можно создавать подключения к нескольким «приложениям двух» по сети и отправлять их данные.ZMQ Опубликовать/Подписка шаблон издателя подключается к подписчикам
Я попытался реализовать это с помощью шаблона публикации/подписки, но вместо подписчика, подключенного к издателю, подписчик подключается к подписчикам.
Издательство:
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_PUB);
socket.connect("tcp://localhost:5555");
std::string text = "Hello World";
zmq::message_t message(text.size());
memcpy(message.data(), text.c_str(), text.size());
socket.send(message);
Subscriber:
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_SUB);
socket.bind("tcp://*:5555");
const char* filter = "Hello ";
socket.setsockopt(ZMQ_SUBSCRIBE, filter, strlen(filter));
zmq::message_t request;
socket.recv(&request);
std::string message = std::string(static_cast<char*>(request.data()), request.size());
std::cout << "Message received!" << std::endl;
std::cout << message << std::endl;
издатель finnishes без ошибок, но абонент застрял в RECV(). И да, я начинаю их в правильном порядке (абонент первым)