• Python下的XML-RPC客户端和服务端实现(基于xmlrpclib SimpleXMLRPCServer 模块)


    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并启动:D:Program Fileseclipse-workspaceHessianProasicXmlRPCXmlRPCserver.py

    #!/usr/bin/python
    # -*- coding:UTF-8 -*-
    
    
    from  SimpleXMLRPCServer import SimpleXMLRPCServer
    from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
    
    
    class XmlRPCserver():
        def datasum(self,x,y):
            print u'加法结果:',x+y
            return x+y
        
        def datadiv(self,x,y):
            print u'除法结果:',x/y
            return x/y
        
        
    
    if __name__ == '__main__':
        rpc_obj=XmlRPCserver()
        
        server=SimpleXMLRPCServer(("localhost", 8000))
        
        server.register_function(rpc_obj.datasum, 'datasum') #注册函数
        server.register_function(rpc_obj.datadiv,'datadiv')
        
        print "Listening on port 8000..."
        server.serve_forever()# 保持等待调用状态
    

      

    4、构造一个基本的XML-RPC Client:  D:Program Fileseclipse-workspaceHessianProasicXmlRPCXmlRPCclient.py

    #!/usr/bin/python
    # -*- coding:UTF-8 -*-
    
    import xmlrpclib
    
    sp=xmlrpclib.ServerProxy('http://localhost:8000')
    print sp.datasum(1,2)
    print sp.datadiv(4,2)
    

     

     

  • 相关阅读:
    [BZOJ3043]IncDec Sequence
    【NOIP2015】字串
    [NOIP]2016天天爱跑步
    【NOIP2015】运输计划
    [poj3565]Ants
    【ZOJ2760】How Many Shortest Path
    [POJ3281] Dining
    P1077摆花
    校内测之zay与银临 (day2)
    P1880石子合并
  • 原文地址:https://www.cnblogs.com/apple2016/p/11763925.html
Copyright © 2020-2023  润新知