博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS thrift python demo
阅读量:5317 次
发布时间:2019-06-14

本文共 1849 字,大约阅读时间需要 6 分钟。

编辑接口文件 hellowworld.thrift

service HelloWorld {    string ping(),    string say(1:string msg)}
编辑 server.py

#!/usr/bin/env python import socketimport syssys.path.append('./gen-py') from helloworld import HelloWorldfrom helloworld.ttypes import * from thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocolfrom 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 syssys.path.append('./gen-py') from helloworld import HelloWorld from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom 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.thriftpython server.py  python client.py  #这个分一个窗口运行

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

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

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

转载于:https://www.cnblogs.com/iplus/p/4489940.html

你可能感兴趣的文章
arguments.callee()事例 参数检验
查看>>
Spring Boot—05页面跳转
查看>>
iptables (2) 基本配置
查看>>
postman--安装及Interceptor插件
查看>>
第十周总结
查看>>
算法马拉松13 A-E解题报告
查看>>
白白的(baibaide)
查看>>
Android-一张图理解MVP的用法
查看>>
OOD之问题空间到解空间—附FP的建模
查看>>
PHP和Mysql处理IP地址
查看>>
大型网站技术架构:核心原理与案例分析笔记
查看>>
ubuntu安装chrome driver
查看>>
jQuery系列(十四):jQuery中的ajax
查看>>
BZOJ2326 [HNOI2011]数学作业
查看>>
poj 1141 Brackets Sequence
查看>>
通过邮箱远程控制电脑
查看>>
Server.MapPath()的用法
查看>>
CSS笔记
查看>>
Day10:html和css
查看>>
Linux下SSH远程连接断开后让程序继续运行解决办法
查看>>