Introduction
Laymen explanation
Technical explanation
Hello world example
root@799633f35b75:/var/dkzeromq# cat hwserver.py
#
# Hello World server in Python
# Binds REP socket to tcp://*:5555
# Expects b"Hello" from client, replies with b"World"
#
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# Wait for next request from client
message = socket.recv()
print("Received request: %s" % message)
# Do some 'work'
time.sleep(1)
# Send reply back to client
socket.send(b"World")
root@799633f35b75:/var/dkzeromq# python hwserver.py &
[1] 469
root@799633f35b75:/var/dkzeromq# netstat -atpun
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6/python
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN 453/python
tcp 0 0 172.17.0.12:52552 172.17.0.10:5432 ESTABLISHED 6/python
root@799633f35b75:/var/dkzeromq# cat hwclient.py
#
# Hello World server in Python
# Binds REP socket to tcp://*:5555
# Expects b"Hello" from client, replies with b"World"
#
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
for request in range(10):
socket.send(b"Hello")
message = socket.recv()
print message
root@799633f35b75:/var/dkzeromq# python hwclient.py
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
Received request: Hello
World
root@799633f35b75:/var/dkzeromq#
Sample netstat output for ipc socket
bash-3.2# netstat -an | grep config_sock | more
ffffff01fe5045a0 stream 0 0 0 ffffff003e7413c0 0 0 /tmp/aps/ipc_sockets/config_sock
ffffff00db9b9780 stream 0 0 0 ffffff00db8692d0 0 0 /tmp/aps/ipc_sockets/config_sock
http://zguide.zeromq.org/py:all