Python标准库的socket
.create_connection()
方法有一个源地址选项,用于控制连接使用的源IP。
如果机器有多个地址,我如何使用Python ZeroMQ套接字做同样的事情?
在这种情况下,我一直在使用Linux的iproute2 ip addr add
来创建地址和ZeroMQ PUB/SUB
套接字原型。
答案 0 :(得分:3)
socket
- "对手" (它不是) 为什么?
经典socket
是一种免费的资源。
ZeroMQ是一个相当复杂的思想和行为原则(更好的 - 分布式行为)的层次结构,有助于设计智能分布式计算系统,而无需触及控制实际事件流的低级(ZeroMQ井抽象)细节在恶劣条件的风暴中,所有分布式计算系统都是开放的(并且必须相应地处理低水平,如果由ZeroMQ保证的高级抽象和承诺将被实现并且使设计师和#39;注意力集中在他/她的核心应用部分,而不是重新设计轮子(包括所有试验和错误)来拉动O / S资源上的字符串并摇动系统服务以收集一些低悬的水果类型)。
由于这些原因,更好地直接忘记ZeroMQ" 类似某事 - socket
"
<强> 1 强>
ZeroMQ承诺轻松重用一些简单的可扩展形式通信模式原型,提供特定的分布式行为{ PUB/SUB | PUSH/PULL | PAIR/PAIR | XPUB/XSUB | ... | REQ/REP }
。
<强> 2 强>
除了仅使用无设备 inproc://
传输类的情况外,在所有其他情况下,ZeroMQ需要一个或多个可调参数&# 34;的发动机强>&#34; - Context( nIOthreads = N )
,N >= 1
。
第3:强>
有了这个,任何(未来的套接字)接入点都可以实例化,从出生那一刻起就有行为原型:
aSubscribeCHANNEL = aLocalCONTEXT.socket( zmq.SUB ) # this is NOT a <SOCKET>
# ^^^^^^__________________ even it was typed in
<强> 4 强>
拥有&#34; 接入点&#34;实例准备就绪&#34;内部&#34;本地&#34; 引擎&#34;,可以使用一个或多个来锁定其在外部现实中的物化(是的,更多......哇!意思是更多来自拉动 - 串入/吹口哨从一个接入点吹出&#34; behavior-node&#34;)调用以下任何一种方法:
.bind(
<transport-class>://<a-class-specific-address>
)
或
.connect(
<transport-class>://<a-class-specific-address>
)
<强> 5 强>
当且仅当.bind()
- RTO就绪接入点A&#34; 被访问&#34;通过第一个实时.connect()
- RTO就绪接入点B,具有任何匹配的行为配对,ZeroMQ消息/信令原型变为现场(将其命名为 socket 可能用于历史原因,在时间安排解释)
(PUB/PUB
永远不会适合,显而易见的原因,而PUB/SUB
和许多其他行为 - 原型对将会和可爱的匹配并形成相互的 - &#34;兼容&#34 ; -behaviours将最终生效并保持如此)
只需在电话中使用完全合格的规格即可
.bind(
"{ tcp | pgm | epgm }://<ip>:<port#>"
)
方法已完成。
那很容易。
很酷,不是吗?
在性能调整,延迟剃须和安全性调整的引擎下,还有许多令人惊喜的惊喜。
答案 1 :(得分:0)
尝试 <Grid container direction='column' spacing={0}> // Grid 1 (Level0)
<Grid item xs={12}> // Grid 1 (Level1)
<Grid container direction='row' spacing={0}>
<Grid item xs={6}>
Logo
</Grid>
<Grid item xs={6}>
FormControl
</Grid>
</Grid>
</Grid>
<Grid item xs={12}> // Grid 2 (Level1)
<Grid container direction='column' spacing={0}>
<Grid item xs={12}> // Grid 1 (Level2)
<Grid container direction='row' spacing={0}>
<Grid item xs={12}>
<TextField/>
</Grid>
<Grid item xs={12}>
<TextField/>
</Grid>
</Grid>
</Grid>
<Grid item xs={12}> // Grid 2 (Level2)
<Grid container direction='row' spacing={0}>
<Grid item xs={6}>
<TextField />
</Grid>
<Grid item xs={6}>
<TextField />
</Grid>
</Grid>
</Grid>
</Grid>
</Grid>
<Grid item xs={12}> // Grid 3 (Level1)
<Grid container direction='row' spacing={0}>
<Grid item xs={6}>
Label
</Grid>
<Grid item xs={6}>
Label
</Grid>
</Grid>
</Grid>
</Grid>
到遥控器时,我在protocol documentation找到了答案,将源ip放在连接字符串中的分号之前:
.connect()
在Python中,这看起来像:
rc = zmq_connect( socket, "tcp://192.168.1.17:5555;192.168.1.1:5555" )