Python XML RPC服务器端和客户端实例

 更新时间:2014年11月22日 16:58:25   投稿:junjie  
这篇文章主要介绍了Python XML RPC服务器端和客户端实例,本文给出了实现代码以及运行效果,需要的朋友可以参考下

一、远程过程调用RPC

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.

简单地,client可以调用server上提供的方法,然后得到执行的结果。类似与webservice。

推荐查看xmlprc的源文件:C:\Python31\Lib\xmlrpc

二、实例

1) Server

复制代码 代码如下:

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

def div(x,y):
    return x - y
   
class Math:
    def _listMethods(self):
        # this method must be present for system.listMethods
        # to work
        return ['add', 'pow']
    def _methodHelp(self, method):
        # this method must be present for system.methodHelp
        # to work
        if method == 'add':
            return "add(2,3) => 5"
        elif method == 'pow':
            return "pow(x, y[, z]) => number"
        else:
            # By convention, return empty
            # string if no help is available
            return ""
    def _dispatch(self, method, params):
        if method == 'pow':
            return pow(*params)
        elif method == 'add':
            return params[0] + params[1]
        else:
            raise 'bad method'

server = SimpleXMLRPCServer(("localhost", 8000))
server.register_introspection_functions()
server.register_function(div,"div")
server.register_function(lambda x,y: x*y, 'multiply')
server.register_instance(Math())
server.serve_forever()

2)client

复制代码 代码如下:

import xmlrpc.client

s = xmlrpc.client.ServerProxy('http://localhost:8000')

print(s.system.listMethods())

print(s.pow(2,3))  # Returns 28
print(s.add(2,3))  # Returns 5
print(s.div(3,2))  # Returns 1
print(s.multiply(4,5)) # Returns 20

3)result

相关文章

  • 教你Pycharm安装使用requests第三方库的详细教程

    教你Pycharm安装使用requests第三方库的详细教程

    PyCharm安装第三方库是十分方便的,无需pip或其他工具,平台就自带了这个功能而且操作十分简便,今天通过本文带领大家学习Pycharm安装使用requests第三方库的详细教程,感兴趣的朋友一起看看吧
    2021-07-07
  • python实现与Oracle数据库交互操作示例

    python实现与Oracle数据库交互操作示例

    这篇文章主要为大家介绍了python实现与Oracle数据库交互操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家,多多进步,早日升职加薪
    2021-10-10
  • python的链表基础知识点

    python的链表基础知识点

    在本篇文章里小编给大家整理的是一篇关于python的链表基础知识点内容,有兴趣的朋友们可以参考学习下。
    2020-09-09
  • 利用Python实现K-Means聚类的方法实例(案例:用户分类)

    利用Python实现K-Means聚类的方法实例(案例:用户分类)

    k-means是发现给定数据集的k个簇的算法,也就是将数据集聚合为k类的算法,下面这篇文章主要给大家介绍了关于利用Python实现K-Means聚类的相关资料,需要的朋友可以参考下
    2022-05-05
  • Python实现pdf转word详细代码

    Python实现pdf转word详细代码

    在日常工作中,我们经常会遇到需要将PDF文件转换成Word文件的需求。虽然市面上有许多PDF转Word的工具,但是它们通常需要付费或者有转换后的格式问题,这篇文章主要给大家介绍了关于Python实现pdf转word的相关资料,需要的朋友可以参考下
    2023-09-09
  • Numpy维度知识总结

    Numpy维度知识总结

    这篇文章主要介绍了Numpy维度知识总结,因为在numpy里一维既可以做行向量也可以做列向量,那对于任意一个给定的一维向量,我们就无法确定他到底是行向量还是列向量,为了防止这种尴尬的境地,习惯上用二维矩阵而不是一维矩阵来表示行向量和列向量,需要的朋友可以参考下
    2023-09-09
  • Python实战之MNIST手写数字识别详解

    Python实战之MNIST手写数字识别详解

    MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。本文主要介绍了通过 MNIST实现手写数字识别,需要的可以参考一下
    2022-01-01
  • Django读取Mysql数据并显示在前端的实例

    Django读取Mysql数据并显示在前端的实例

    今天小编就为大家分享一篇Django读取Mysql数据并显示在前端的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python中的imread()函数用法说明

    Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python的变量和简单数字类型详解

    python的变量和简单数字类型详解

    这篇文章给大家详细介绍了python的变量和简单数字类型,文中介绍的很详细,相信对大家的理解和学习很有帮助,有需要的朋友们可以参考借鉴
    2021-09-09

最新评论