[zeromq-dev] problem with sending and recieving in a simple PAIR setup

Michael Hansen michaelsvenna at gmail.com
Sat Aug 18 09:58:27 CEST 2018


Hi Francesco,
Thank you for the reply.
Yes I am....I tried protecting it with a lock also but that did not work.
If I cannot share socket like this, do you know then how to build zmq
instances that sends messages to each other in an undefined pattern (ie.
send from either can come at any time and either do not need to wait for a
reply before a new message is being sent)
Should i bind to 2 different ports?
I just thought it was the whole point of PAIR communication that 2 machines
can send and recieve to one another over the same socket.

On Sat, Aug 18, 2018 at 9:45 AM, Francesco <francesco.montorsi at gmail.com>
wrote:

> Hi Michael,
> Are you using the same socket from 2 different threads (to run rtx and ttx
> functions) right?
> That's not allowed... Zmq socket objects are not thread safe...
>
> HTH,
> Francesco
>
> Il sab 18 ago 2018, 06:18 Michael Hansen <michaelsvenna at gmail.com> ha
> scritto:
>
>> Hi,
>> I am not sure I see where there is missing some indentation.
>> To me it looks okay regarding indentation.
>> rtx is just a def with a while loop where recv is called and printed in
>> every iteration.
>>
>> On Sat, Aug 18, 2018 at 12:44 AM, Tomer Eliyahu <tomereliyahu1 at gmail.com>
>> wrote:
>>
>>> Aren't you missing indentation in rtx functions?
>>>
>>> On Sat, Aug 18, 2018, 01:20 Michael Hansen <michaelsvenna at gmail.com>
>>> wrote:
>>>
>>>> Hello, I am quite new to ZMQ which seems like a really nice library.
>>>> However i seem to be running into some issues already.
>>>> I have to make a setup with just 2 peers who can send to each other.
>>>> There is no order in how the clients communicate - however in generel
>>>> data flows
>>>> from one to the other and commands from the other to the first.
>>>>
>>>> I made a small test as below but communication seem to hang up and only
>>>> one part is sending.
>>>> Also - sometimes when i try to run this, i get the following error:
>>>>
>>>> 'Resource temporarily unavailable (bundled/zeromq/src/signaler.cpp:301)
>>>>
>>>> Abort trap: 6'
>>>>
>>>>
>>>> Here are the 2 components, what am I doing wrong?
>>>>
>>>>
>>>>
>>>>
>>>> # ==============
>>>> # = SERVER A
>>>> # ==============
>>>>
>>>>
>>>> import threading
>>>> import time
>>>> import zmq
>>>>
>>>>
>>>> port = 9999
>>>> context = zmq.Context()
>>>> socket = context.socket(zmq.PAIR)
>>>> socket.connect("tcp://127.0.0.1:%s" % port)
>>>>
>>>>
>>>> def rtx(socket):
>>>> print('A started receiving...')
>>>> while 1:
>>>> print(b'A RECEIVED : %s' % socket.recv())
>>>>
>>>>
>>>> def ttx(socket):
>>>> print('A started transmitting...')
>>>> while 1:
>>>> socket.send(b'Message from A')
>>>> time.sleep(1)
>>>>
>>>>
>>>> threading.Thread(target=rtx, args=(socket,)).start()
>>>> threading.Thread(target=ttx, args=(socket,)).start()
>>>>
>>>>
>>>>
>>>>
>>>> # ==============
>>>> # = SERVER B
>>>> # ==============
>>>>
>>>>
>>>> import threading
>>>> import time
>>>> import zmq
>>>>
>>>>
>>>> port = 9999
>>>> context = zmq.Context()
>>>> socket = context.socket(zmq.PAIR)
>>>> socket.bind("tcp://127.0.0.1:%s" % port)
>>>>
>>>>
>>>> def rtx(socket):
>>>> print('B started receiving...')
>>>> while 1:
>>>> print(b'B RECEIVED : %s' % socket.recv())
>>>>
>>>>
>>>> def ttx(socket):
>>>> print('B started transmitting...')
>>>> while 1:
>>>> socket.send(b'Message from B')
>>>> time.sleep(1)
>>>>
>>>>
>>>> threading.Thread(target=rtx, args=(socket,)).start()
>>>> threading.Thread(target=ttx, args=(socket,)).start()
>>>>
>>>> _______________________________________________
>>>> 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
>>
>
> _______________________________________________
> 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/20180818/4ce98537/attachment.html>


More information about the zeromq-dev mailing list