1

Pythonモジュールとグラフィックスインターフェースと通信する必要があるC++のコアモジュール間でメッセージの受け渡しを行っています

次の方法で ZMQ を使用してメッセージングを行っています。

int main()
{
    context_t context(1);
    socket_t publisher(context, ZMQ_PUB);
    publisher.bind("tcp://127.0.0.1:50000");
//This sockets takes charge of the python publishing
    socket_t send_py(context, ZMQ_SUB);
    send_py.bind("tcp://127.0.0.1:5557");
    socket_t receive_py(context, ZMQ_SUB);
    receive_py.connect("tcp://127.0.0.1:5558");
    receive_py.setsockopt(ZMQ_SUBSCRIBE, NULL, 0);
    zmq::message_t control_signal(sizeof(float));
    zmq::message_t control_signal_second(sizeof(float));
    cout<<"flag"<<endl;
    publisher.send(control_signal);
    cout<<"flag_1"<<endl;
    send_py.send(control_signal_second);
    cout<<"flag_2"<<endl

}

私はすでにアドレスをいじっており、ポートが開いていると確信しています。

コードはコンパイルされますが、次の出力が得られます。

flag
flag_1
terminate called after throwing an instance of 'zmq::error_t'
  what():  Operation not supported
Aborted (core dumped)

それらの1つを正しく公開していますが、send_pyu.sendを機能させていません。

どうもありがとう

4

1 に答える 1

1

send_pyサブスクライバーとして定義したようです:

socket_t send_py(context, ZMQ_SUB);
send_py.bind("tcp://127.0.0.1:5557");

..しかし、データを送信しようとしていますが、これは無効であり、サポートされていません。サブスクライバーは受信しますが、データは送信しません。

send_py.send(control_signal_second);

データを送信する必要がある場合はPUB、 、PUSH、またはその他のソケット タイプを使用しますが、SUBでは機能しませんsend()。スローしOperation Not Supportedます。

于 2013-08-13T20:46:04.943 に答える