• Python与RPC -- (转)


    XML-RPC

    xmlrpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。

    一个rpc系统,必然包括2个部分:

    1)rpc client,用来向rpc server调用方法,并接收方法的返回数据;

    2)rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。

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

    一、SimpleXMLRPCServer

     

    SimpleXMLRPCServer :python 自 带的一个 RPC 库;

    RPC的传输协议:UDP、TCP、HTTP、XXXP;

    RPC的数据 协议有xml、json、各种私有二 进制协议(hessian amf3 … . )。  大公司的 google 的protocolbuffer,facebook的thrift 。

     

    1.1 一个最 简单的 RPC  服 务器端

    from SimpleXMLRPCServer import SimpleXMLRPCServer

    def add(a , b):

    return a+b

    server = SimpleXMLRPCServer(("localhost", 8000))

    server.register_function(add)

    server.serve_forever()

     

    测试客户端

    from xmlrpclib import ServerProxy

    server = ServerProxy("http://localhost:8000")

    try:

    ret = server.add(30,90)

    print 'result:', ret

    print 'result type:', type(ret)

    except Exception as ex:

    print "exception", ex

    1.2  服 务器客户端都干了什么?

     

     

    1  从客 户端打印出通讯的数据:

    发向服务器的:

    POST /RPC2 HTTP/1.0

    Host: localhost:8000

    User-Agent: xmlrpclib.py/1.0.1 (by  www.pythonware.com )

    Content-Type: text/xml

    Content-Length: 189

    <?xml version='1.0'?>

    <methodCall>

    <methodName>add</methodName>

    <params>

    <param><value><int>30</int></value></param>

    <param><value><int>90</int></value></param>

    </params>

    </methodCall>

     

     

     

    2  服 务器返回的数据:

    HTTP/1.0 200 OK'

    Server: BaseHTTP/0.3 Python/2.6.1

    Date: Mon, 20 Jul 2009 05:33:09 GMT

    Content-type: text/xml

    Content-length: 123

    <?xml version='1.0'?>

    <methodResponse>

    <params><param><value><int>120</int></value></param></params>

    </methodResponse>

    特点:   http 协议传输协议, xml 做数据 协议应用协议。

    因 为 http 只作 为传输协议   所以只使用了 post 方法。

  • 相关阅读:
    USACO3.4.3Electric Fence
    (转)《算法艺术与信息学竞赛》题目 提交方式对照表
    UVA10382 Watering
    SGU104 Little shop of flowers
    UVA10673 Play with Floor and Ceil
    SGU123 The sum
    SGU106 The equation
    SGU105 Div 3
    UVA10905 Children's Game
    SGU101 200分类
  • 原文地址:https://www.cnblogs.com/fendou-999/p/3590769.html
Copyright © 2020-2023  润新知