Let's get started;
Our target installation machine is Ubuntu 12.04 64-bit Desktop edition; http://www.ubuntu.com/download/desktop. Your mileage may vary with alternative distributions. I'm starting with a new default installation and will work through the installation process from here on.
$ sudo apt-get install python-zmq
After the APT package handling utility is done humping package installations you should have a function, albeit dated, version to begin working with.
Let's take a look at what version we're dealing with here.
$ cat go
#!/usr/bin/python
import zmq;
print zmq.pyzmq_version()
Running this beauty will show us the version of Zmq we've got installed.
$ ./go
2.1.11
Let's continue our sandbox by creating a sender and receiver Python script as follows;
$ more sender receiver
::::::::::::::
sender
::::::::::::::
#!/usr/bin/python
import zmq;
import time;
context = zmq.Context();
pub=context.socket(zmq.PUB);
pub.bind("tcp://127.0.0.1:8000");
for i in range(0,20):
print "iteration",i
pub.send("some message");
time.sleep(1);
::::::::::::::
receiver
::::::::::::::
#!/usr/bin/python
import zmq;
import time;
context = zmq.Context();
sub=context.socket(zmq.SUB);
sub.connect("tcp://127.0.0.1:8000");
filter=""
sub.setsockopt(zmq.SUBSCRIBE, filter);
for i in range(0,20):
print "waiting on msg"
M=sub.recv();
print "received",M
Running these two concurrently demonstrates the message delivery from the sender to the receiver;
::::::::::::::
sender.log
::::::::::::::
iteration 0
iteration 1
iteration 2
iteration 3
iteration 4
iteration 5
iteration 6
iteration 7
iteration 8
iteration 9
iteration 10
iteration 11
iteration 12
iteration 13
iteration 14
iteration 15
iteration 16
iteration 17
iteration 18
iteration 19
::::::::::::::
receiver.log
::::::::::::::
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
received some message
waiting on msg
What may be of interest you as well is that since the 'endpoint' is defined identically to the one used in the C++ example you can send messages from the Python sender script to the C++ main application.
Enjoy.
No comments:
Post a Comment