2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world

2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world

thrift是什么 最简单解释 thrift是用来帮助各个编程语言之间进行通信,交换信息的一个框架(可以理解成一个工具,或者假象成一个软件)。因为正常情况下php与java等语言无法进行数据的传递,当然平时我们运用接口传递jeson数据实现。但是使用thrift会有它的优势,我看到是说他的数据传输方式使得数据传输量很小,这方面可以自己搜索了解。 例如: 有人写了一个Java程序,可以给一些数据,你是php写的网站,你需要这些数据,你怎么获取?因为Java的数据结构和类型等都与php有区别。所以就用thrift来实现中间的转换,具体怎么转换的你不用关心。就像你用QQ,你只需和好修发消息聊天就是了,QQ怎么发送怎么接收的你根本不用管。

具体实现:

注意: 本例子中程序代码是参照那两篇博客的代码,所以有些东西只是针对这写代码的要求,可以自行调整。 另外注意:我在官网上看到这个

注意: 安装thrift环境需要在官网下载2个东西,一个是软件.exe文件,一个是各个语言的包--大概是用于软件实现各个语言的数据传输交互的具体是实现(但是注意: windows会有对应的包需要下载,但是linux环境下安装过程好像实现了对应的包的部署,不用再想windows这样下载和进行相应的包选择和目录结构部署,具体可以参照其他博客)

  1. 下载thrift的.exe软件
  2. 下载thrift的各个语言的包(作用执行搜索) 如下:
  3. 写一个thrift文件(通过它你你告诉thrift你要做什么工作,具体实现它会在生成代码时自动搞定,这就是thrift的作用),用thrift的.exe进行编译生成对应的代码,这是通过一个命令实现的。这些代码好像不用做修改,thrift好像是通过这些代码实现了具体的过程。每次修改thrift结构就应该生成一次。
  4. 客户端和服务器端(最简单的理解:服务端就是你的网站或应用,你需要去获取别人Java等语言写的接口提供的数据,对方就相当于是服务器)
  5. 把下载的thrift的各个语言的包按照规定格式放到网站目录结构下-参考我的:thrift包结构,从中选取自己对应语言的包(我是用php作为服务器,所以选择的是php的包):
  6. thrift测试项目的目录结构命名要求,注意,使用我参照的两个博客的程序时,圈出的文件夹名称必须这样命名(当然你可以修改程序中对应的目录来调整这一点): 

更复杂的数据结构定义,数据类型等自行参考示例进行修改,加油。

实现了我自己的thrift输出 hello world,脱离了公司的那个demo:

参见借用了博客的客户端和服务器代码: http://my.oschina.net/penngo/blog/496992 thrift文件代码: http://my.oschina.net/penngo/blog/489311

时间: 2024-12-13 22:59:11

2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world的相关文章

30分钟QUnit入门教程

30分钟Qunit入门教程 15分钟让你了解Javascript单元测试框架QUnit,并能在程序中使用. QUnit是什么 QUnit是一个强大,易用的JavaScript单元测试框架,由jQuery团队的成员所开发,并且用在jQuery,jQuery UI,jQuery Mobile等项目. Hello World 学习QUnit还是从例子开始最好,首先我们需要一个跑单元测试的页面,这里命名为index-test.html: <!DOCTYPE html> <html> <

Python 30分钟快速入门指南

学习地址 中文版:Python 30分钟入门指南 英文版:Learn X in Y minutes 学习时间 2019/03/10 19:00 - 19:32,多用了2分钟. 原文地址:https://www.cnblogs.com/huerxiong/p/10506664.html

【网络编程笔记】简单的TCP协议 socket编程(C语言版服务器和客户端)

下图是一般socket 编程图. 服务器的建立: 获取的本机名,用来解析得到本机的IP地址的:接着就绑定IP地址成功,然后服务器就处于监听状态,等待客户端的连接.也就是接下来就是TCP/IP的三次握手的操作,该操作成功了服务器和客户端就可以进行通信了.以下是注释代码: 1 void socketConnect() 2 { 3 char Server_name[128]; 4 WSADATA wsaData; 5 struct hostent *hp; 6 struct sockaddr_in a

一张图30分钟快速Python入门

国外一个大牛使用一张图来讲述Python的基本概念,让你30分钟快速入门.通过该程序,可以了解快速Python语言基本的语法结构和使用方法,它的基本程序如下: 当然看不懂没关系这里还有中文版的 # -*- coding:utf-8 -*- # #如果文件中有使用中文的地方,一定要使用这一行来声明编码,同时文件本身也存储成UTF-8编码 #hello_world.py #脚本文件一般采用.py后缀 # Quick Python Script Explanation for Progeammers

Swift简单入门教程:30分钟玩转Swift

通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现:    println("hello, world") 如果你写过 C 或者 Objective-C 代码,那你应该很熟悉这种形式——在 Swift 中,这行代码就是一个完整的程序.你不需要为了输入输出或者字符串处理导入一个单独的库.全局作用域中的代码会被自动当做程序的入口点,所以你也不需要main函数.你同样不需要在每个语句结尾写上分号. 这个教程会通过一系列编程

js_一个简单的30分钟循环倒计时

吐槽段: 需求的变更是千变万化的,至少在你说服和你打交道的那位谁谁谁之前. 创业公司就是这样,产品经理一个想法,就是改改改,管你改起来复杂不复杂,在他们眼里都是非常简单的. 今天的一个小改动需求,把活动的倒计时改成一个循环的30分钟倒计时,没错,就是一个循环的30分钟倒计时,这个活动是永无止境的. 技术段: HTML 1 <p>红包有效期: 2 <!--2.倒计时HTML--> 3 <span id="minute">00</span>分

简单程序题:abcd四个项目收益顺序分别占10%,20%,30%,40%

abcd四个项目收益顺序分别占10%,20%,30%,40%,当有一个项目不存在时则该项目收益归上一个项目,项目a 始终存在,封装一个函数得到abcd的收益: 这题不难,关键点是要想到用数组,这点想到了,那肯定能做出来. 程序代码: <?php /**     * 获取项目收益     * @param null $b     * @param null $c     * @param null $d     * @return array*/    function getIncome($b

30分钟掌握ES6核心内容

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. 虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了.所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了... 在我们正式讲解ES6语法之前,我们得先了解下Babel. Babel Babel是一个广泛使用的ES6转码器,可以将

es6属性基础教学,30分钟包会

ES6基础智商划重点在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得高兴的是,如果你熟悉ES5,学习ES6并不需要花费太多的时间就可以掌握,因为常用的基础语法并不多,花少量的时间,就可以开始我们的ES6之旅了. 这篇文章不会详细的告诉你ES6的每一个细节知识,只会根据我自己的开发经验,将我在实际开发中常常用到的知识点分享给大家,给大家学习ES6一个方向的指引.这是因