当前位置:  开发笔记 > 编程语言 > 正文

最佳Python支持的服务器/客户端协议?

如何解决《最佳Python支持的服务器/客户端协议?》经验,为你挑选了3个好方法。

我正在寻找一个支持Python的良好服务器/客户端协议,用于在一个服务器和许多客户端之间进行数据请求/文件传输.安全性也是一个问题 - 因此安全登录将是一个优势.我一直在研究XML-RPC,但它看起来是一个非常古老的(现在可能还没用?)协议.



1> Glyph..:

如果您希望进行文件传输,XMLRPC可能是一个糟糕的选择.它需要您将所有数据编码为XML(并将其加载到内存中).

"数据请求"和"文件传输"听起来很像普通的旧HTTP,但是你对问题的陈述并没有明确要求.需要在请求中编码哪种信息?像" http://yourserver.example.com/service/request?color=yellow&flavor=banana " 这样的网址是否足够好?

Python中有很多HTTP客户端和服务器,其中没有一个特别好,但我确信所有这些都将完成基本文件传输的工作.您可以使用"正常"Web方式执行安全性,即使用HTTPS和密码,这可能就足够了.

如果你想要双向通信,那么HTTP就会崩溃,像Twisted的透视代理(PB)或异步消息协议(AMP)这样的协议可能会更适合你.Twisted肯定很好地支持这些协议.



2> Jim Carroll..:

Google发布了ProtocolBuffers,作为一种以非常紧凑的高效方式序列化数据的方式.他们支持C++,Java和Python.我还没有使用它,但从源头看,似乎每种语言都有RPC客户端和服务器.

我个人在几个项目中使用过XML-RPC,它总是完全按照我的意愿行事.我通常介于C++,Java和Python之间.我经常在Python中使用libxmlrpc,因为它易于记忆和交互式输入,但它实际上比替代pyxmlrpc慢得多.

PyAMF主要用于带有Flash客户端的RPC,但它也是一种值得关注的紧凑型RPC格式.

当你的两端都有Python时,我不相信Pyro (Python远程对象).Pyro甚至还有一个"名称服务器",可以让服务宣布它们可用于网络.客户端使用名称服务器来查找它所需的服务,无论它们在特定时刻处于何种活动状态.这为您提供了免费冗余,并且能够在不停机的情况下将服务从一台机器移动到另一台机器.

为了安全起见,我通过SSH进行隧道传输,或者在连接级别使用TLS或SSL.当然,所有这些选项基本相同,它们只有各种设置难度.



3> pobk..:

如果所有服务器/客户端都在Python中,Pyro(Python远程对象)相当聪明.我使用XMPP很多,因为我正在与不总是Python的主机通信.XMPP也很容易扩展.

有一个优秀的python XMPP库,名为PyXMPP,它是合理的最新版本,不依赖于Twisted.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有