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 <[email protected]> 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 <[email protected]> > wrote: > >> Aren't you missing indentation in rtx functions? >> >> On Sat, Aug 18, 2018, 01:20 Michael Hansen <[email protected]> >> 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 >>> [email protected] >>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev >>> >> >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> https://lists.zeromq.org/mailman/listinfo/zeromq-dev >> >> > _______________________________________________ > zeromq-dev mailing list > [email protected] > https://lists.zeromq.org/mailman/listinfo/zeromq-dev >
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
