我已经创建了一个 zmq.SUB 客户端,以便在可以获取数据时从服务器接收数据。
client.py
import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.subscribe("")
socket.connect("tcp://localhost:9000")
while True:
print(socket.recv_string())
问题是我的服务器只需要发送一次数据然后需要快速关闭。然后重新打开它,发送数据然后永远重复这些步骤。但是客户端无法从服务器获取任何数据,可以有人在我的特殊情况下有一些解决方案吗?
server.py
import zmq
context = zmq.Context.instance()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:9000")
socket.send_string(f"Hello")
操作
python client.py
python server.py
python server.py
python server.py
答案 0 :(得分:0)
我稍微更改了代码,现在可以使用了,我认为它没有 工作,因为您立即发送消息。
Server.py
import zmq
import time
context = zmq.Context.instance()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:9000")
input("press enter to send message...")
socket.send_string(f"Hello")
client.py
import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect("tcp://127.0.0.1:9000")
socket.subscribe("")
while True:
print(socket.recv_string())
现在就运行
python client.py
然后
python server.py
然后按回车键(不要立即等待至少四分之一秒!)