[zeromq-dev] How to receive byte array in ZeroMQ C++

Juergen Gnoss jgnoss at hotmail.com
Fri Nov 24 16:02:18 CET 2017


Just as a pathfinder


I don't know nothing about the C++ bindings of zmq and how it is

implemented.

In C bindings you need to "pop" each part of the message in a variable

of your choice, then you can handle that variable as you do normal in

your language.


In C after receiving the message from your socket,


you do :


int msgsize = zmsg_size(receivedMessage);


byte *msgContent = zmsg_popmsg(receivedMessage);


then


for (int x = 0; i <  msgsize; i++) {

    doSomeThingWith(msgContent[i]);

}



Ju


________________________________
From: zeromq-dev <zeromq-dev-bounces at lists.zeromq.org> on behalf of Ravi Joshi via zeromq-dev <zeromq-dev at lists.zeromq.org>
Sent: Friday, November 24, 2017 12:39 AM
To: ZeroMQ development list
Cc: Ravi Joshi; Mykola Ostrovskyy
Subject: Re: [zeromq-dev] How to receive byte array in ZeroMQ C++

Dear Mykola,

Thank you very much.

The message is defined in C# as follows:

var message = new ZMessage
{
    new ZFrame(myByteArray)
};
publisher.Send(message);

I want to get the byte array in C++. May I use something like following:

zmq::message_t msg;
int rc = zmq_socket.recv(&msg);
if (rc)
{
    unsigned char bytearray[] = msg.data();
}

Please check out following Pastebin links, to see publisher and subscriber code:
(1) https://pastebin.com/PJ7f2TJ5
(2) https://pastebin.com/JKf0cZjh


-
Thanks
Ravi

On Friday, 24 November 2017 1:35 AM, Mykola Ostrovskyy via zeromq-dev <zeromq-dev at lists.zeromq.org> wrote:



Hello Ravi,


If that's just a raw byte array, msg.data<uint8_t>() should to the trick. For example:

    for (size_t i = 0; i < msg.size(); ++i) {
        printf("%02X ", msg.data<uint8_t>()[i]);
    }


Regards,
Mykola



2017-11-23 14:52 GMT+02:00 Ravi Joshi via zeromq-dev <zeromq-dev at lists.zeromq.org>:

Hello,
>
>Hope you are having a good time. I am publishing byte array using ZeroMQ in C#. Please see the publisher here (https://pastebin.com/PJ7f2TJ5 )
>
>I am trying to receive this byte array in C++. Please see the subscriber in C++ here (https://pastebin.com/JKf0cZjh )
>
>I want to know that how to receive the sent bytes in C++?
>
>-
>
>Thanks
>Ravi
>______________________________ _________________
>zeromq-dev mailing list
>zeromq-dev at lists.zeromq.org
>https://lists.zeromq.org/ mailman/listinfo/zeromq-dev
>

_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20171124/bb02aa6e/attachment.htm>


More information about the zeromq-dev mailing list