参考文章:

总览:

RPC是Remote Procedure Call的缩写,翻译成中文就是远程方法调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。

XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用

  • 它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
  • 这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。
  • Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。

Python下的XML-RPC:

  1. 类库:xmlrpclib 

    • 一般使用在客户端
    • 这个模块用来调用注册在XML-RPC服务器端的函数
    • xmlrpclib并不是一个类型安全的模块,无法抵御恶意构造的数据,这方面的一些处理工作需要交给开发者自己。
  2. 类库:SimpleXMLRPCServer
    • 一般是用在服务器端
    • 这个模块用来构造一个最基本的XML-RPC服务器框架
  3. 构造一个基本的XML-RPC Server:
 from SimpleXMLRPCServer import SimpleXMLRPCServer

 def is_even(n):
return n%2 ==
server = SimpleXMLRPCServer(("localhost", 8000))#确定URL和端口
print "Listening on port 8000..."
server.register_function(is_even, "is_even") #注册is_even函数
server.serve_forever()#启动服务器,并使其对这个连接可用

4.  构造一个基本的XML-RPC Client:

 import xmlrpclib

 proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客户端调用XML-RPC函数
print "100 is even: %s" % str(proxy.is_even(100))

上述两段代码实现了一个最基本的XML-RPC服务器端和客户端,主要是为了阐述XML-RPC的基本概念。

最近因为工作的关系用到这一模块的相关功能,我也在积极学习中,我会将之后学到的新知识及时补充完善到博客上来。

如果您有一些非常不错的心得欢迎留言指教。

最新文章

  1. Android课程---添加黑名单的练习(课堂讲解)
  2. office project 激活
  3. NHibernate概念
  4. SGU 311. Ice-cream Tycoon(线段树)
  5. oracle case when 语句
  6. ioshittest的用法
  7. 华为 1.static有什么用途?(请至少说明两种)
  8. css+div如何解决文字溢出
  9. HDU 1166 单点更新,区间求和
  10. SQL Join 的三种类型
  11. poj2136
  12. 互联网组织的未来:剖析GitHub员工的任性之源(转)
  13. matlab secant method
  14. Python的字典和JSON
  15. django中的跨表查询梳理
  16. 现代程序设计 homework-06
  17. 2. Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现(转)
  18. EasyUI panel
  19. 微信小程序项目
  20. Too much thinking! Too much annoying.

热门文章

  1. activemq两种实现方式
  2. vue - check-versions.js for packageConfig
  3. Bitmap和Drawable的互相转换
  4. 更轻便的markdown 编辑器Typora
  5. VUE购物车示例
  6. Bootstrap学习 进度条
  7. php中对象是引用类型吗?
  8. APP消息推送功能
  9. scrapy抓取的中文结果乱码解决办法
  10. mysql操作索引的sql语句