Queue device
这是一个位于客户端可服务端的中间件,拓展了之前的REQ/REP模式,图
通过这种方式,REQ socket和REP socket之间不需要明确绑定了,大家都绑定到Queue这个device就可以了,Queue device来处理请求的发送与返回,灵活度大大提升(不这样估计没人用),看看代码 Queue-device:
#coding=utf-8 import zmq def main(): try: context = zmq.Context(1)#IO线程数 # 面向客户端 frontend = context.socket(zmq.XREP) frontend.bind("tcp://*:5559") # 面向服务端 backend = context.socket(zmq.XREQ) backend.bind("tcp://*:5560") zmq.device(zmq.QUEUE, frontend, backend) except Exception, e: print e print "bringing down zmq device" finally: pass frontend.close() backend.close() context.term()#手动结束context if __name__ == "__main__": main()
好心的告诉你,zmq.device()里有个while True:,所以别担心它自己结束,作者挺细心的:)
Queue-server:这个就是普通的REP
import zmq import time import sys import random port = "5560" context = zmq.Context() socket = context.socket(zmq.REP) socket.connect("tcp://localhost:%s" % port) server_id = random.randrange(1,10005) while True: # Wait for next request from client message = socket.recv() print "Received request: ", message time.sleep (1) socket.send("World from server %s" % server_id)
Queue-client:普通的REQ
import zmq import sys import random port = "5559" context = zmq.Context() print "Connecting to server..." socket = context.socket(zmq.REQ) socket.connect ("tcp://localhost:%s" % port) client_id = random.randrange(1,10005) # Do 10 requests, waiting each time for a response for request in range (1,10): print "Sending request ", request,"..." socket.send ("Hello from %s" % client_id) # Get the reply. message = socket.recv() print "Received reply ", request, "[", message, "]"
run的顺序是Queue device先起来,然后server,client,一切如同之前的REQ/REP模式。
对应的还有2个device,大同小异,复制下图
PUB/SUB家的:
PUSH/PULL家的:
ok,接下来的似乎要深入点,总的来说感觉这个学习曲线还是很平滑的:)
相关推荐
Devicenet学习笔记
wd ses device usb device 西部数据 移动硬盘 驱动 wd ses device usb device 西部数据 移动硬盘 驱动 wd ses device usb device 西部数据 移动硬盘 驱动
DeviceNet从站设备开发的源码,采用了microchip的MCU,对于做DeviceNet从站设备的开发人员来说,有很大参考意义
最新 wd ses device usb device 西部数据移动硬盘 驱动下载。 支持WIN2003、XP等系统。
基于STM32开发的DEVICENET的不完全原代码,由于版权有限,里边有几处需要修改后才能完全符合标准。
一、准备工作 配置DeviceAdmin 配置DeviceAdmin可参考 android权限级别探索(二),设备管理器开启和使用及常见api,创建DeviceReceiver继承DeviceAdminReceiver,并在AndroidManifest中注册,完成两步即可。无需将...
/ # usb 1-1: new full speed USB device using s3c2410-ohci and address 2 usb 1-1: device descriptor read/64, error -62 usb 1-1: device descriptor read/64, error -62 usb 1-1: new full speed USB device ...
iOS 11.3 DeviceSupport 真机支持包,解压放到指定位置,位置里面有
devicenet相关资源,包含: 中文协议,相关产品介绍,参考资料,环境搭建,相关代码等。 部分文档名称如下: CAN-bus-shiyanshi.pdf Device Net总线知识汇总贴.doc DeviceNet 及ODVA概要.doc Device...
Springer.Smart Device to Smart Device Communication.2014
D2D 外文文献 Smart-device-to-smart-device communications D2D 外文文献 Smart-device-to-smart-device communications
获取deviceID 的方法,项目中已使用
新更新的12.0缺少SDK可用 command + shift + G 前往文件夹 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 将更新包解压进去即可
iOS 11 device support 大家可以把文件复制到Xcode目录下使用
DeviceNet-协议规范完整中文版 .pdf
Xcode DeviceSupport ios 10.3 Xcode DeviceSupport ios 10.3Xcode DeviceSupport ios 10.3
WD SES Device Driver 西部数据移动硬盘驱动程序WD SES dervice
低版本的Xode真机运行比当前Xcode所支持的最高iOS版本还要高的系统时,将开发包导入到里面重启Xcode可真机测试。xcode包中Developer/Platforms/iPhoneOS.platform/DeviceSupport ,重启Xcode OK了
在我的电脑上面,输出如下: C: \Device\HarddiskVolume1 D: \Device\HarddiskVolume2 E: \Device\HarddiskVolume3 F: \Device\HarddiskVolume4 H: \Device\CdRom0
Simatic device drive