0
私はZMQを初めて使用しており、すでにパブリッシュサブスクライブパターンに関するチュートリアルを行っています。しかし、私のアプリケーションでは、あまり適用されません。私は2種類のアプリケーションを持っています。アプリケーションは、ネットワーク上の複数の「アプリケーション2」への接続を作成し、それらのデータを送信することができます。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);
購読者:
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のでスタックしています()。はい、私は正しい順序(加入者の最初)でそれらを開始しています