gpt4 book ai didi

c++ - 如何使用引用发送 ZMQ 消息?

转载 作者:搜寻专家 更新时间:2023-10-31 02:09:52 25 4
gpt4 key购买 nike

ZMQ_REQ/ZMQ_REP example缓冲区被初始化,然后使用 memcpy 将消息复制到其中。

具体来说:

zmq::message_t reply (5);
memcpy (reply.data (), "World", 5);
socket.send (reply);

如何使用字符指针引用回复消息?

也就是说,类似以下内容:

char* text = "Hello";
zmq::message_t reply ();
socket.send (text);

最佳答案

在您提供的示例中,您发送的不是引用而是指针。

使用 ZMQ API,您必须memcpy 消息缓冲区中的数据。

您可以编写自己的包装器函数

bool send(zmq::socket_t& socket, const std::string& string) {
zmq::message_t message(string.size());
std::memcpy (message.data(), string.data(), string.size());
bool rc = socket.send (message);
return (rc);
}

bool send(zmq::socket_t& socket, const char* data) {
size_t size = strlen(data); // Assuming your char* is NULL-terminated
zmq::message_t message(size);
std::memcpy (message.data(), data, size);
bool rc = socket.send (message);
return (rc);
}

然后用这样的方式发送您的消息:

char* text = "Hello";
send(socket, text);

关于c++ - 如何使用引用发送 ZMQ 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070568/

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