如何解决如何让客户端每次启动服务器时都接收数据?
我已经创建了一个 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
解决方法
我稍微更改了代码,现在可以使用了,我认为它没有 工作,因为您立即发送消息。
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
然后按回车键(不要立即等待至少四分之一秒!)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。