On 24 March 2018 16:10:41 GMT+00:00, "Georger, Joseph" <[email protected]> wrote: >I have looked at the self test and did not see an example where frames >were being written and a picture received. Here is what happens when I >run the code below. As you can see, only the string comes through when >sending frames to a picture. > >Testing picture to picture send/receive: >Sending 5, topic, 3 >Received 5, topic, 3 >Testing frame to picture send/receive: >Received 0, topic, 0 > >#include "czmq.h" >#include <iostream> > >int main(void) { > // Create two PAIR sockets and connect over inproc > zsock_t *output = zsock_new_pair("@inproc://zsock.test"); > assert (output); > zsock_t *input = zsock_new_pair(">inproc://zsock.test"); > assert (input); > > // picture to picture test > std::cout << "Testing picture to picture send/receive:\n"; > int num1 = 5; > uint32_t num2 = 3; > std::cout << "Sending " << num1 << ", topic, " << num2 << std::endl; > zsock_send(output, "is4", num1, "topic", num2); > > int rnum1; > char *rstr; > uint32_t rnum2; > int rc = zsock_recv(input, "is4", &rnum1, &rstr, &num2); > assert(rc == 0); > std::cout << "Received " << rnum1 << ", " << rstr << ", " << num2 << >std::endl; > freen(rstr); > > // frames to picture test > std::cout << "Testing frame to picture send/receive:\n"; > zmsg_t *msg = zmsg_new(); > assert(msg); > rc = zmsg_addmem(msg, &num1, sizeof(num1)); > assert(rc == 0); > rc = zmsg_addmem(msg, "topic", 5); > assert(rc == 0); > rc = zmsg_addmem(msg, &num2, sizeof(num2)); > assert(rc == 0); > rc = zmsg_send(&msg, output); > assert(rc == 0); > > rnum1 = 0; > rnum2 = 0; > rc = zsock_recv(input, "is4", &rnum1, &rstr, &num2); > assert(rc == 0); > std::cout << "Received " << rnum1 << ", " << rstr << ", " << num2 << >std::endl; > freen(rstr); > > zsock_destroy(&input); > zsock_destroy(&output); >} > >Thanks, >Joe > > > > Message: 13 > Date: Sat, 24 Mar 2018 10:11:02 +0000 > From: Luca Boccassi <[email protected]> > To: ZeroMQ development list <[email protected]> > Subject: Re: [zeromq-dev] zframe compatible w/zsock picture? > Message-ID: <[email protected]> > Content-Type: text/plain; charset="utf-8" > > On Fri, 2018-03-23 at 22:25 +0000, Georger, Joseph wrote: > > Just a quick question, I was starting to write send & receive using > > zframes, but came across the ?picture? concept in zsock. I was > > sending three zframes, using addmem to construct the zmsg: char * > > topic, uint32_t length in bytes, char * for msg. > > > > I wrote the receiver using pictures, > > zsock_receive(socket, ?s4s?, &sz, &topic, &payload) > > > > topic came through, but sz was 0. Should this in theory work, can I > > receive a frame containing a uint32_t with the picture paradigm? Can > > I intermix a zmsg/zframe sender with a picture receiver (and vice >> versa)? The docs imply yes: ?The picture is a string that defines the > > type of each frame.? > > > > Thanks, > > Joe > > Yes, see selftest for an example: > >https://github.com/zeromq/czmq#zsock---high-level-socket-api-that-hides-libzmq-contexts-and-sockets > > -- > Kind regards, > Luca Boccassi > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: signature.asc > Type: application/pgp-signature > Size: 488 bytes > Desc: This is a digitally signed message part >URL: ><https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20180324/07c46638/attachment-0001.sig> > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > zeromq-dev mailing list > [email protected] > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > ------------------------------ > > End of zeromq-dev Digest, Vol 24, Issue 13 > ****************************************** > > >_______________________________________________ >zeromq-dev mailing list >[email protected] >https://lists.zeromq.org/mailman/listinfo/zeromq-dev
Right, you have to use the zsock-recv/send APIs together - look at the implementation if you want to replicate it manually but note that it's not a public protocol so it's not guaranteed to stay unchanged. Those APIs are intended as a self-contained shortcut. _______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
