基础
pip install pyzmq
Debian 安装
sudo apt-get install libzmq3-dev
Request-Reply模式(请求响应模型)
客户端在请求后,服务端必须回响应
服务端
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# 等待客户端连接
message = socket.recv() # message 是客户端发来的消息
socket.send(b"World") # 返回消息给客户端的
客户端
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://IP:端口") # 连接的IP与端口
socket.send(b"Hello") # 向服务器发送消息
message = socket.recv() # 获取服务器发来的消息
发布-订阅模式
广播所有客户端
服务端
import signal
import zmq
signal.signal(signal.SIGINT, signal.SIG_DFL)
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind('tcp://*:5555')
# 广播消息
socket.send(b'status 5')
客户端
import signal
import zmq
signal.signal(signal.SIGINT, signal.SIG_DFL)
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect('tcp://localhost:5555')
socket.setsockopt(zmq.SUBSCRIBE, b'status') # 接收端消息开头 不是次开头的消息不接收
while True:
message = socket.recv_multipart()
print(f'Received: {message}')