[zeromq-dev] DEALER and ROUTER to send and receive

Lucas Hope lucas.r.hope at gmail.com
Wed Apr 10 06:14:41 CEST 2013


The router has to receive a message from the dealer first, so the return
envelope/s can be determined. After that, I don't think there are any
restrictions.


On Wed, Apr 10, 2013 at 1:06 PM, A. Mark <gougolith at gmail.com> wrote:

> It is difficult to help without understanding more detail about your
> application, in general yes you can send/recv in any order on router/dealer.
>
>
> On Tue, Apr 9, 2013 at 3:38 PM, Rahul & Piyali Ray <8429oakmont at gmail.com>wrote:
>
>> Hi Gurus,
>>     I have implemented a dealer (server) and router ( as server) using
>> zmq. I would like my application to use dealer or router to both send and
>> receive messages, something like a dealer can send and receive message. Is
>> this possible ? Please see the code that I have written. This works for one
>> way connection ( dealer sends, router receives). But I want it both
>> ways...dealer to receive from router on the same port over the network. Can
>> you please help me find what I am missing ?
>>
>> Thanks,
>> Tufan
>>
>> code:
>>
>> int MessageClient::SendMessage(list<string> stringList)
>>     181 {
>>     182
>>     183     int returnvalue = -1;
>>     184     int count = stringList.size();
>>     185     for(list<string>::const_iterator sitterator =
>> stringList.begin();
>>     186             sitterator != stringList.end();  sitterator++)
>>     187     {
>>     188         string stringName = *sitterator;
>>     189         int length = stringName.length();
>>     190         int flag = count - 1;
>>     191         count--;
>>     192         void* value = &stringName;
>>     193         printf("message is %s", stringName);
>>     194         if(flag > 0)
>>     195             returnvalue = zmq_send(socket, value, length,
>> PM_SNDMORE);
>>     196         else
>>     197             returnvalue = zmq_send(socket, value, length, flag);
>>     198
>>     199         assert (returnvalue == 1);
>>     200     }
>>     201     return returnvalue;
>>     202 }
>>
>>
>>                char* MessageClient::ReceiveMessage( int flags)
>>     219 {
>>     220     zmq_msg_t zmqMessage;
>>     221     zmq_msg_init(&zmqMessage);
>>     222     int size = zmq_msg_recv(&zmqMessage,socket,flags);
>>     223     if(size == -1)
>>     224     {
>>     225         printf(" no message");
>>     226         return (NULL);
>>     227     }
>>     228     char *string = (char *)malloc(size + 1);
>>     229     memcpy(string, zmq_msg_data(&zmqMessage), size);
>>     230     zmq_msg_close(&zmqMessage);
>>     231     string[size] = 0;
>>     232     return string;
>>     233 }
>>     234
>>
>>
>>
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>


-- 
---------------------------------------------------
Dr Lucas Hope - lucas.r.hope at skype
Machine Learning and Software Engineering Consultant
Melbourne, Australia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130410/406a53e4/attachment.htm>


More information about the zeromq-dev mailing list