首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python udp性能

Python udp性能
EN

Stack Overflow用户
提问于 2016-07-03 01:21:51
回答 1查看 1K关注 0票数 2

我正在设置一个非常简单的消息服务器,使用TCP和UDP在带有wifi的Raspberry PI 2上的不同端口上。我正在使用UDP进行多播。服务器工作正常。问题是,当我运行服务器(TCP和UDP侦听器)时,处理器的使用率会跳到30%左右。这不是在处理任何东西,只是在听。当我关闭UDP时,它会上升到大约3-5%。这是正常的(它是一个RPi),还是我做错了什么?以下是初始化UDP监听器的代码:

代码语言:javascript
复制
class UDPServer(asyncore.dispatcher):
  def __init__(self):
    asyncore.dispatcher.__init__(self)
    multicast_group = '224.3.29.71'
    server_address = ('', 8081)

    # Create the socket
    self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)

    # Bind to the server address
    self.bind(server_address)


    group = socket.inet_aton(multicast_group)
    mreq = struct.pack('4sL', group, socket.INADDR_ANY)
    self.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
    print("UDP listening on {}:{}".format(multicast_group,8081))
EN

回答 1

Stack Overflow用户

发布于 2016-07-31 00:43:21

我花了一段时间才回到这个问题上,但J.F. Sebastian有解决方案。我实现了asyncio,它的开销很小。我直接从Python documentation复制了演示。asyncio唯一的问题是,它似乎被列为临时的,所以从技术上讲,它可以在以后删除。如果你想要一个答案的积分,把你的评论移到一个答案上,我会给它打分。感谢J.F.Sebastion和dsgdfg。

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

https://stackoverflow.com/questions/38162706

复制
相关文章

相似问题

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