[zeromq-dev] What prevents reading a message self sent ?

Laurent Alebarde l.alebarde at free.fr
Tue Jan 21 12:35:13 CET 2014


Le 21/01/2014 12:32, Goswin von Brederlow a écrit :
> On Tue, Jan 21, 2014 at 11:09:54AM +0100, Laurent Alebarde wrote:
>> Hi Devs,
>>
>> This is my thuesday morning stupid question: say I have a socket on
>> which I send a message, and just after I put a receive on this same
>> socket in the code. What prevents in libzmq to receive the message I
>> have just sent ?
>>
>> Let's raise the question differently, what prevents zmq_proxy to
>> loop indefinitely since what it receives on socket A, it sends it on
>> socket B, and vice versa ?
>>
>> socket A                                        socket B
>>     | ______________________\______________________ |
>>     |/                      /                      \|
>>     |                                               |
>>     |\______________________/______________________/|
>>     |                       \                       |
>>      zmq_proxy(A,B)does not loop on itself like this
>>
>> Why does it manage to work like this:
>>
>> socket A                                        socket B
>>     |                                               |
>> -->|---------------------------------------------->|------------>
>>     |                                               |
>>     |                                               |
>> <--|<----------------------------------------------|<------------
>>
>> zmq_proxy(A,B)does what it is expected to do, yeah !
> I imagine it is more like:
>
> socket A           socket B
>     |                  |
> -->| recv() -> send() |------------>
>     |                  |
>     |                  |
> <--| send() <- recv() |<------------
>
> Each socket has an incoming and outgoing queue. Recv() looks in the
> incoming queue and send() puts messages in the ougoing queue and never
> the two shall meet.
>
It was so simple ! Shame on me :-[ . Thank you Goswin.

>> Can I chain: zmq_proxy(A,B); zmq_proxy(B,C), zmq_proxy(C,D),
>> assuming I start them in different threads ?
> I don't see why not.
>   
>> Cheers,
>>
>>
>> Laurent
> MfG
> 	Goswin
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140121/35eb4033/attachment.htm>


More information about the zeromq-dev mailing list