`
pjwqq
  • 浏览: 81173 次
社区版块
存档分类
最新评论

pyzmq的4种模式(PAIR)笔记

阅读更多

    今天学习下pyzmq,感觉怎么样呢,看了官网开头,记录之,基本上也可以算个翻译

     Exclusive pair pattern 特点

           1. 双向通讯

           2. 套接字无状态(封装的很好吧)

           3. 只能有一个对等连接(这能干嘛用,似乎没啥用)

           4. 服务端监听,客户端连接

然后:你根本不用考虑message接收的完整不完整,你照做就是了!(原文)

官方example在此:

pairserver.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import zmq
import random
import sys
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.bind("tcp://*:%s" % port)
while True:
    socket.send("Server message to client3")
    msg = socket.recv()
    print msg
    time.sleep(1)

pairclient.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import zmq
import random
import sys
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.connect("tcp://localhost:%s" % port)
while True:
    msg = socket.recv()
    print msg
    socket.send("client message to server1")
    socket.send("client message to server2")
    time.sleep(1)

 

然后run起来,有点小问题,client连续send了2次,server倒是没问题,来一个响应一个,client的recv()不是应该收2个 "Server message to client3"吗

 改一下server:

import zmq
import time

port = '5556'
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.bind('tcp://*:%s'%port)
i = 0
while True:
	i += 1
	print 'begin:',i
	socket.send('msg from server:'+str(i))
	msg = socket.recv()
	print 'msg:%s'%msg
	time.sleep(1)

 run起来:

client: 

begin
msg from server:1
begin
msg from server:2
begin
msg from server:3

 server:

begin: 1
msg:client msg to server -1
begin: 2
msg:client msg to server -2
begin: 3
msg:client msg to server -1
begin: 4
msg:client msg to server -2
begin: 5
msg:client msg to server -1
begin: 6

 好吧,它确实没丢任何message,只能说呵呵,这封装的,有点别扭。

7
0
分享到:
评论

相关推荐

    PyPI 官网下载 | pyzmq-22.1.0-cp37-cp37m-manylinux1_i686.whl

    3. **High-level Patterns**:`pyzmq`封装了一些高级模式,如`Dealer`和`Router`,简化了复杂的请求-响应模式。 4. **Context and Socket Management**:`pyzmq`通过`Context`对象管理多个`Socket`,保证了连接和...

    PoE Plus 2-PAIR vs. 4-PAIR WHAT TO DO?

    the cable, this suggests that a 4-pair system is a necessary solution. • In the case of maximum delivered power, 4-Pair PoE can deliver about 50% more power than a 2-Pair PoE system. • This ...

    pair-copula.rar_pair copula程序_pair copula算法_pair-copula_paircopu

    4. **计算过程**:构建Pair Copula模型通常包括选择合适的Copula类型、估计参数、检验模型适用性等步骤。这通常涉及似然函数的最大化,可以通过数值优化方法实现。 5. **调试与验证**:在实际应用中,Pair Copula...

    Python库 | pyzmq-15.3.0.zip

    - **套接字类型**:`pyzmq`支持ZeroMQ的所有套接字类型,如`REQ`(请求)、`REP`(响应)、`PUB`(发布)、`SUB`(订阅)、`DEALER`(交易商)、`ROUTER`(路由器)等,每种类型对应不同的消息模式。 - **消息处理**...

    C++学习之Pair

    但需要注意的是,使用`typedef`并不会为新的类型创建新的功能或特性,它仅仅提供了一种更简洁的方式来引用已存在的类型。 Pair类型是C++模板编程的基础部分,尽管在某些情况下看起来使用起来比较繁琐,但对于需要...

    HDS本地、远程复制笔记.pdf

    4. 删除 PAIR 关系 删除 PAIR 关系是 HDS 存储系统中的一种重要功能,用于删除本地和远程复制关系。使用 CCI 命令可以删除 PAIR 关系,例如: `pairsplit -IM60 -g ECIF_SCVDB-E` 这条命令将删除 ECIF_SCVDB 的 ...

    整形和字符串类型的pair类型C语言实现

    在C语言中,没有内置的`pair`类型,但我们可以自己创建一个结构体来模拟这种类型,以便在程序中组合不同类型的值,如整型和字符串。`pair`类型通常用于表示两个相关联的数据项,这在算法和数据结构中非常常见。下面...

    Could not generate DH keypair 解决方案

    Diffie-Hellman(DH)是一种非对称加密算法,用于在不安全的网络上安全地交换秘密密钥。现在,让我们深入探讨这个问题以及如何解决它。 首先,DH keypair 由两部分组成:一个公钥和一个私钥。当两个通信方试图建立...

    socketpair_binder

    socketpair,binder

    All usd pair - MetaTrader 4脚本.zip

    MQ4是MetaQuotes Language 4的缩写,是一种专门用于编写MT4指标和EA的编程语言。 **MQ4语言基础** MQ4语言允许交易者根据个人需求编写自定义的技术指标,它基于C语言,语法相似,但具有特定于金融市场的函数和结构...

    losses (2)_Npair_

    4. n_pair_loss.py:这也是N-pair Loss的实现,可能采用不同的编程风格或算法优化。 这些脚本的源代码可以提供深入理解N-pair Loss及其与其他损失函数如角损失(Angular Loss)的差异的机会,也可以帮助我们优化...

    Multi pair MACD - MetaTrader 4脚本.zip

    指标 Multi pair MACD。 MACD的另外一种样式,显示货币对URUSD;GBPUSD和 USDCAD的信号。

    Allegro172版本设置pin pair快捷键工具.rar

    Allegro172版本设置pin pair快捷键工具.rar Allegro在升级到了172版本后,原本Allegro166版本在规则管理器中设置pin pair...本资源是专门为解决这个问题而开发的一种172版本创建pin pair快捷键的方法,内附详细使用说明

    All_usd_pair - MetaTrader 4脚本.zip

    指标All usd pair.

    ds4pair_wii:DS4 配对工具

    【ds4pair_wii: DS4 配对工具】是一个专为Wii游戏机设计的工具,它使得DualShock 4(DS4)游戏手柄能够与Wii系统进行配对和交互。这个工具的核心是利用了开源库libogc的最新版本,libogc是一个针对Wii和GameCube开发...

    bluetooth pair

    蓝牙配对("bluetooth pair")是无线连接技术中一个关键的过程,它允许两台设备,如智能手机、耳机、电脑或智能家居设备,通过蓝牙无线技术建立通信。在这个过程中,设备之间发现、选择并验证彼此,从而形成一个安全的...

    Could not generate DH keypair处理办法.rar

    4. **更新服务器证书**:确保服务器的SSL证书配置正确,并支持所需的加密套件。 5. **检查操作系统限制**:某些操作系统可能对可用的加密算法有限制,确保系统设置允许使用必要的加密算法。 6. **避免升级JDK**:...

    Projective dictionary pair learning for pattern classification的源码

    这篇论文提出了投影字典对学习(Projective Dictionary Pair Learning, DPL)算法,为模式分类问题提供了一种新颖且高效的方法。 投影字典对学习的核心思想是通过构建两个相互正交的字典,分别代表数据的不同方面,...

    模式识别作业,用pair类型写的C均值算法

    模式识别C均值算法写的一个小程序,有一定扩展性,不完善的地方请大家多多指正,互相学习。

    linux socketpair尝试

    介绍socketpair的一些应用,并共享到两个独立的程序中进行便捷的通信应用。 鉴于最近了解相关细节时,苦于自身人肉能力有限,没找到好的例子,为此特别在试验之后与大家分享一下相关内容 readme将有简单说明

Global site tag (gtag.js) - Google Analytics