ZeroMQ C++ ラッパーでマルチパート メッセージを受信できません。C バージョンを使用した同じコードは問題なく動作しますが、C++ ではまったく説明のない例外が発生します。マルチパート処理コードは次のとおりです。
int _tmain(int argc, _TCHAR* argv[])
{
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_REP);
socket.bind("tcp://*:5555");
while(true) {
// the following two lines lead to exception
zmq::message_t request;
socket.recv(&request);
//zmq_msg_t message;
//zmq_msg_init (&message);
//zmq_recv (socket, &message, 0);
}
return 0;
}
それは非常に単純です。このバージョンは動作しません。ただし、while ループの最初の 2 行をコメント アウトし、現在コメントされている (C バージョン) コードのコメントを解除すると、機能します。これは、Windows XP sp3、Zeromq 2.1.1、および Visual Studio 2010 Express です。
単一部分のメッセージを送信すると、両方のバージョンが正常に動作します。私は何を間違っていますか?