首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[zguide]pyzmq发布不工作

[zguide]pyzmq发布不工作
EN

Stack Overflow用户
提问于 2014-01-09 13:16:30
回答 1查看 208关注 0票数 0

我从github下载zguide源代码。我发现python示例代码-wuserver.py不起作用。运行wuserver.py和wuclient.py,wuclient.py不能恢复任何数据,但是如果我运行c代码-wuserver.c,wuclient.py可以恢复数据。

wuserver.py

代码语言:javascript
复制
#
#   Weather update server
#   Binds PUB socket to tcp://*:5556
#   Publishes random weather updates
#

import zmq
from random import randrange


context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5556")

while True:
    zipcode = randrange(1, 100000)
    temperature = randrange(-80, 135)
    relhumidity = randrange(10, 60)

    socket.send_string("%i %i %i" % (zipcode, temperature, relhumidity))

wuclient.py

代码语言:javascript
复制
#
#   Weather update client
#   Connects SUB socket to tcp://localhost:5556
#   Collects weather updates and finds avg temp in zipcode
#

import sys
import zmq


#  Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)

print("Collecting updates from weather server...")
socket.connect("tcp://localhost:5556")

# Subscribe to zipcode, default is NYC, 10001
zip_filter = sys.argv[1] if len(sys.argv) > 1 else "10001"

# Python 2 - ascii bytes to unicode str
if isinstance(zip_filter, bytes):
    zip_filter = zip_filter.decode('ascii')
socket.setsockopt_string(zmq.SUBSCRIBE, zip_filter)

# Process 5 updates
total_temp = 0
for update_nbr in range(5):
    string = socket.recv_string()
    zipcode, temperature, relhumidity = string.split()
    total_temp += int(temperature)

print("Average temperature for zipcode '%s' was %dF" % (
      zip_filter, total_temp / update_nbr)
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-11 05:58:51

我试过了,没出什么问题。您可以修改wuclient.py代码以查看已转移的内容:

代码语言:javascript
复制
for update_nbr in range(5):
    string = socket.recv_string()
    zipcode, temperature, relhumidity = string.split()
    print(string)    # add this statement
    total_temp += int(temperature)

然后,您应该首先运行wuclient.py ,然后运行wuserver.py

P.S.:zguide文档提供了一个非常清晰的方法来调试丢失的消息问题,这可能非常有帮助。这是丢失消息问题解决器

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21021362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档