gpt4 book ai didi

c++ - ZeroMQ Pub 发送空字符串

转载 作者:行者123 更新时间:2023-11-30 03:00:05 25 4
gpt4 key购买 nike

我已经设置了一个简单的 C++ PUB 和 python SUB,目的是最终将 C++ 端构建为一个简单的 DLL。我之前有过一些类似的 python 设置经验,没有问题。然而,我是一个彻头彻尾的 C++ 菜鸟。

我的 C++ 代码:

#define ZMQ_EXPORT

#include "stdafx.h"
#include "zmq.hpp"

int _tmain(int argc, _TCHAR* argv[]) {
zmq::context_t context(1);
zmq::socket_t publisher(context, ZMQ_PUB);
publisher.bind("tcp://*:6666");

zmq::message_t message(5);
memcpy(message.data(), "Hello", 5);

while(true) {
Sleep(500);
publisher.send(message);
}

return 0;
}

recv_multipart() 上 python SUB 脚本的结果:

['']

我相信它可以正常工作,但我认为我执行 memcpy 的方式存在缺陷。

最佳答案

我认为您错过了发布/订阅的整个“订阅”部分

您需要为 PUB 消息提供某种消息过滤器。这也意味着您的 SUB 需要执行 setsockopt能够接收消息。

您给出的示例表明您实际上没有用于 PUB 消息的消息过滤器(或者更确切地说,您的“Hello”是您的消息过滤器,数据消息实际上是一个空字符串)。

关于c++ - ZeroMQ Pub 发送空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com