summaryrefslogtreecommitdiffstats
path: root/external_libs/python/pyzmq-14.7.0/examples/eventloop/echo.py
blob: 9be079b614504f99a75bbc474af8339a98579c7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
"""A trivial ZMQ echo server using the eventloop.

Authors
-------
* MinRK
"""

import zmq
from zmq.eventloop import ioloop

loop = ioloop.IOLoop.instance()

ctx = zmq.Context()
s = ctx.socket(zmq.REP)
s.bind('tcp://127.0.0.1:5555')

def rep_handler(sock, events):
    # We don't know how many recv's we can do?
    msg = sock.recv()
    # No guarantee that we can do the send. We need a way of putting the
    # send in the event loop.
    sock.send(msg)

loop.add_handler(s, rep_handler, zmq.POLLIN)

loop.start()