Python ZeroMQ入门

本文是针对初学者的Python ZeroMQ入门教程,通过三个实例介绍ZeroMQ的基本使用,包括客户端-服务器通信、发布-订阅模式以及并行任务处理的流水线模型,帮助读者快速理解ZeroMQ的工作原理。
摘要由CSDN通过智能技术生成

通常需要用到ZeroMQ的人应该已经具备比较深的编程知识,所以有个问题就是目前能找到的大多数入门教程对小白不够友好。

所以我最近在学的时候,顺便做些记录。

就不摆概念定义了,百度一下就有。而且刚刚学可能也看不懂,容易打击信心,所以直接从例子开始吧。

接下来会用三个例子,介绍最基本的模式和用法。

第一个例子

我们想实现Hello World这个经典功能。但是ZeroMQ不是一个编程语言,是一个传输工具。所以我们想实现的功能是:A给B发送一个消息,B收到消息返回给A一些回答。也就是客户端和服务器干的事情。

客户端发送“Hello”到服务器,然后服务器用“World”来应答。

下面是Hello world服务器(hwserver.py):

# -*-coding:utf-8-*-
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(0.5)

    #  Send reply back to client
    socket.send(b"World")

把REP套接字绑定到tcp://*:5555上,就像是安装一个电话机在这里,这样别人就可以给它打电话传输信息了。

while True让服务器会一直运行,等待客户端的消息,接收到之后,发送消息“World”。

字符串前面b代表这是一个bytes对象,下同。

下面是客户端(hwclient.py):

# -*-coding:utf-8-*-

import zmq

context = zmq.Context()

#  Socket to talk to server
print("Connecting to hello world server...")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")

#  Do 10 requests, waiting each time for a response
for request in range(10):
    print("Sending request %s ..." % request)
    socket.send(b"Hello")

    #  Get the reply.
    message = socket.recv()
    print("Received reply %s [ %s ]" % (request, message))

客户端取连接服务器的位置,相当于给之前安装的电话机打电话。

然后测试,发送了10次消息,每次都是发送的“Hello”。

然后接受服务器返回的信息,打印出来。


首先打开服务器,即运行hwserver.py :

服务器正在等待。

然后运行客户端,即hwclient.py :

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值