zoukankan      html  css  js  c++  java
  • CentOS thrift python demo

    编辑接口文件 hellowworld.thrift

    service HelloWorld {
        string ping(),
        string say(1:string msg)
    }

    编辑 server.py

    #!/usr/bin/env python
     
    import socket
    import sys
    sys.path.append('./gen-py')
     
    from helloworld import HelloWorld
    from helloworld.ttypes import *
     
    from thrift.transport import TSocket
    from thrift.transport import TTransport
    from thrift.protocol import TBinaryProtocol
    from thrift.server import TServer
     
    class HelloWorldHandler:
      def ping(self):
        return "pong"
     
      def say(self, msg):
        ret = "Received: " + msg
        print ret
        return ret
     
    handler = HelloWorldHandler()
    processor = HelloWorld.Processor(handler)
    transport = TSocket.TServerSocket("localhost", 9090)
    tfactory = TTransport.TBufferedTransportFactory()
    pfactory = TBinaryProtocol.TBinaryProtocolFactory()
     
    server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
     
    print "Starting thrift server in python..."
    server.serve()
    print "done!"


    编辑 client.py

    #!/usr/bin/env python
     
    import sys
    sys.path.append('./gen-py')
     
    from helloworld import HelloWorld
     
    from thrift import Thrift
    from thrift.transport import TSocket
    from thrift.transport import TTransport
    from thrift.protocol import TBinaryProtocol
     
    try:
      transport = TSocket.TSocket('localhost', 9090)
      transport = TTransport.TBufferedTransport(transport)
      protocol = TBinaryProtocol.TBinaryProtocol(transport)
      client = HelloWorld.Client(protocol)
      transport.open()
     
      print "client - ping"
      print "server - " + client.ping()
     
      print "client - say"
      msg = client.say("Hello!")
      print "server - " + msg
     
      transport.close()
     
    except Thrift.TException, ex:
      print "%s" % (ex.message)


    运行:

    thrift --gen py helloworld.thrift
    python server.py  
    python client.py  #这个分一个窗口运行


    如果修改里面的一个方法或者增加一个调用方法的话,需要在 helloword.thrift 里面定义函数及参数。

    在服务端运行代码 thrift -r --gen py helloworld.thrift 

    重新生成 gen-py 文件夹,将里面的代码拷贝到客户端的服务器。

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    弹出层layer的使用
    SQL Server SQL分页查询
    C#过滤html标签
    SQLServer ForXmlPath应用
    js调用soapWebService服务
    MediaWiki使用指南
    阿里云金融云服务器配置
    VS无法启动 IISExpress web 服务器
    mysql服务突然丢失解决方案
    [k8s]通过openssl生成证书
  • 原文地址:https://www.cnblogs.com/iplus/p/4489940.html
Copyright © 2011-2022 走看看