私のCアプリケーションには、このZeroMQメッセージ送信コードがあります
void *socket= zmq_socket (context, ZMQ_DEALER);
// ...
zmq_msg_t zmsg;
zmq_msg_init_size (&zmsg, msg_size);
memcpy(zmq_msg_data (&zmsg), content, msg_size);
zmq_msg_send (&zmsg, socket, 0);
zmq_msg_close(&zmsg);
sleep (1);
これは実際には機能しますが、メッセージをフラッシュするために sleep(1) を呼び出さなければならないという事実は好きではありません。そのままにしておくと、サーバーにメッセージが届きません。スリープを呼び出さずにソケット上のメッセージを「フラッシュ」する他の可能性はありますか? ZeroMQ v3.2.2 を使用しています。
どうもありがとうございました!
編集: この動作は、デバッグ モードでのみ発生するようです。