diff options
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py b/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py new file mode 100644 index 00000000..ae065b35 --- /dev/null +++ b/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py @@ -0,0 +1,37 @@ +from gevent import spawn, spawn_later +import zmq.green as zmq + +# server +print zmq.Context +ctx = zmq.Context() +sock = ctx.socket(zmq.PUSH) +sock.bind('ipc:///tmp/zmqtest') + +spawn(sock.send_pyobj, ('this', 'is', 'a', 'python', 'tuple')) +spawn_later(1, sock.send_pyobj, {'hi': 1234}) +spawn_later(2, sock.send_pyobj, ({'this': ['is a more complicated object', ':)']}, 42, 42, 42)) +spawn_later(3, sock.send_pyobj, 'foobar') +spawn_later(4, sock.send_pyobj, 'quit') + + +# client +ctx = zmq.Context() # create a new context to kick the wheels +sock = ctx.socket(zmq.PULL) +sock.connect('ipc:///tmp/zmqtest') + +def get_objs(sock): + while True: + o = sock.recv_pyobj() + print 'received python object:', o + if o == 'quit': + print 'exiting.' + break + +def print_every(s, t=None): + print s + if t: + spawn_later(t, print_every, s, t) + +print_every('printing every half second', 0.5) +spawn(get_objs, sock).join() + |