我正在尝试使用 ZMQ 4.2.3 和 cppzmq 中的 sub/pub 模式接收多部分消息我能够成功发送和接收单部分消息,但是当我尝试在第二帧中读取时,它的大小始终为 0 . 让我完全困惑的是使用 NetMQ 的 C# 版本读取第二帧没有问题,让我相信它被正确发送。我知道我错过了一些东西,但今天是我试图弄清楚没有成功的第二天。
这是我的酒吧代码
#include <iostream>
#include "zmq_addon.hpp"
void main()
{
zmq::context_t ctx = zmq::context_t();
zmq::socket_t pub = zmq::socket_t(ctx, zmq::socket_type::pub);
try
{
//binding using localhost gives an error about invalid device?
pub.bind("tcp://*:8845");
}
catch (...)
{
std::cout << zmq_strerror(zmq_errno());
std::cin.get();
return;
}
byte topic = 8;
std::string id = "ragefire.bob";
while (true)
{
std::cout << "Spam\n";
pub.send(id.c_str(), id.length(), ZMQ_SNDMORE);
pub.send("foo", 3);
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的 C++ 子代码
#include <iostream> …Run Code Online (Sandbox Code Playgroud)