[zeromq-dev] problem with sending and recieving in a simple PAIR setup
Francesco
francesco.montorsi at gmail.com
Sat Aug 18 09:45:37 CEST 2018
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20180818/d7def761/attachment.htm>
More information about the zeromq-dev
mailing list