diff options
author | Micah Anderson <micah@riseup.net> | 2014-08-11 16:33:29 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2014-08-11 16:33:29 -0400 |
commit | cce638a8adf4e045ca5505afea4bda57753c31dd (patch) | |
tree | b5e139d3359ac5b8c7b1afa8acbb1b5b6051c626 /examples/device |
initial import of debian package
Diffstat (limited to 'examples/device')
-rw-r--r-- | examples/device/client.py | 38 | ||||
-rw-r--r-- | examples/device/server.py | 52 |
2 files changed, 90 insertions, 0 deletions
diff --git a/examples/device/client.py b/examples/device/client.py new file mode 100644 index 0000000..14a4e26 --- /dev/null +++ b/examples/device/client.py @@ -0,0 +1,38 @@ +"""A client for the device based server.""" + +# +# Copyright (c) 2010 Brian E. Granger and Eugene Chernyshov +# +# This file is part of pyzmq. +# +# pyzmq is free software; you can redistribute it and/or modify it under +# the terms of the Lesser GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# pyzmq is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Lesser GNU General Public License for more details. +# +# You should have received a copy of the Lesser GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import zmq +import os +from time import time + +print 'Client', os.getpid() + +context = zmq.Context(1) + +socket = context.socket(zmq.REQ) +socket.connect('tcp://127.0.0.1:5555') + +while True: + data = zmq.Message(str(os.getpid())) + start = time() + socket.send(data) + data = socket.recv() + print time()-start, data + diff --git a/examples/device/server.py b/examples/device/server.py new file mode 100644 index 0000000..b29a3c1 --- /dev/null +++ b/examples/device/server.py @@ -0,0 +1,52 @@ +"""A device based server.""" + +# +# Copyright (c) 2010 Brian E. Granger and Eugene Chernyshov +# +# This file is part of pyzmq. +# +# pyzmq is free software; you can redistribute it and/or modify it under +# the terms of the Lesser GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# pyzmq is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Lesser GNU General Public License for more details. +# +# You should have received a copy of the Lesser GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import zmq +import os +import threading +import time + +print 'Server', os.getpid() + +def routine(context): + socket = context.socket(zmq.REP) + + socket.connect("inproc://workers") + + while True: + message = socket.recv() + time.sleep(1) + socket.send(message) + +context = zmq.Context(1) + +workers = context.socket(zmq.DEALER) +workers.bind("inproc://workers"); + +clients = context.socket(zmq.DEALER) +clients.bind('tcp://127.0.0.1:5555') + +for i in range(10): + thread = threading.Thread(target=routine, args=(context, )) + thread.start() + +zmq.device(zmq.QUEUE, clients, workers) + +print "Finished" |