跳转至

基础

官网

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}')