python ZeroMQ实现1:N,异步收发消息(也可向指定客户端发送消息)

ZeroMQ的python版本和C/C++版本的接口差不多,要实现一个server对N个client,异步方式,而且可以对指定的client发送消息,可以这样:
server采用ROUTER方式,client采用DEALER方式,而且要自己制定client的zmq.IDENTITY(如果不指定,zmq就会自动生成一个,不好控制对制定的client发送消息。)
server.py

#!/usr/bin/python
#-*-coding:utf-8-*-
import time
import zmq
#import zhelpers

context = zmq.Context()
socket = context.socket(zmq.ROUTER)

#server不需要指定
#socket.setsockopt_string(zmq.IDENTITY, u"desktop")

socket.bind("tcp://*:5555")

while True:
    #zhelpers.dump(socket) #这里可以打印出帧的具体内容
    
    [address,contents]=socket.recv_multipart()
    print("[%s]%s\n"%(address,contents))

    reply = "[get server reply:" + contents + "]"
    socket.send_multipart([address, reply]) #这里的address就可以指定客户端发消息
    

client.py

#!/usr/bin/python
#-*-coding:utf-8-*-
import zmq
import sys
import os

import threading
import ctypes
import inspect

class ZmqClientThread(threading.Thread):

    def __init__(self, func, serverIp, port, identity):
        threading.Thread.__init__(self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值