【发布时间】:2021-06-15 13:09:25
【问题描述】:
如果我同时向 POLLIN 和 POLLOUT 注册 pyzmq 轮询器,则它不起作用。 if 条件无法捕捉到 POLLIN 事件
server.py
>import zmq
import random
import sys
import time
port = "5556"
context = zmq.Context()
socket = context.socket(zmq.DEALER)
socket.bind("tcp://*:5556")
while True:
socket.send(b"Server")
client.py
>import zmq
import random
import sys
import time
port = "5556"
context = zmq.Context()
socket = context.socket(zmq.DEALER)
socket.connect("tcp://localhost:5556")
poller = zmq.Poller()
poller.register(socket, zmq.POLLIN|zmq.POLLOUT)
while True:
socks = dict(poller.poll(50))
if socket in socks and socks[socket] == zmq.POLLIN:
msg = socket.recv()
print(msg)
【问题讨论】:
-
不使用poller直接调用
socket.recv()会发生什么?