java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

理解thrift的php和python版本教程

本文理解了一下thrift的教程php版本最终没有成功运行,python版本成功运行。

从头理解一遍thrift工作原理
cd /root/thrift-0.13.0/tutorial
第一篇:理解php的thrift工作原理

thrift -r --gen php tutorial.thrift

启动Server

php PhpServer.php 

Fatal error: Class 'tutorial\CalculatorProcessor' not found in /root/thrift-0.13.0/tutorial/php/PhpServer.php on line 123
thrift -r --gen php:server tutorial.thrift

php PhpServer.php 不报错了

php PhpClient.php 报错如下

thrift TException: TSocket: Could not connect to localhost:9090 (No route to host [113])

将runServer.py 改改。
BaseHTTPServer.HTTPServer(('', 8080), Handler).serve_forever()

php PhpClient.php 报错如下
TException: TSocket: timed out reading 4 bytes from localhost:9090

$socket = new TSocket('localhost', 9090);
        $socket->setRecvTimeout(10000);

2020.02.03 18:05 都不好用,让人烦躁,鼓捣一下午不好用

18:06

第二篇:理解python版本的thrift的工作模式
试试python版本

thrift-r --gen py tutorial.thrift

/root/thrift-0.13.0/tutorial/gen-py/tutorial

[root@iz2ze9n3z2fl9zj9hrv58vz py]# ./PythonClient.py 
ImportError: No module named six

easy_install six

[root@iz2ze9n3z2fl9zj9hrv58vz py]# ./PythonServer.py 
Starting the server...

好了,启动正常了。

[root@iz2ze9n3z2fl9zj9hrv58vz py]# ./PythonClient.py 
ping()
1+1=2
InvalidOperation: InvalidOperation(whatOp=4, why=u'Cannot divide by 0')
15-10=5
Check log: 5

执行PythonClient.py 自动出结果了。Server那边的反应如下

[root@iz2ze9n3z2fl9zj9hrv58vz py]# ./PythonServer.py 
Starting the server...
ping()
add(1,1)
calculate(1, Work(comment=None, num1=1, num2=0, op=4))
calculate(1, Work(comment=None, num1=15, num2=10, op=2))
getStruct(1)

看来php也应该出来这些玩意,不出来就是也有错误。


This entry was posted in Linux, PHP, Python and tagged . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/run-thrift-php-python/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply