java服务从thrift返回一个i64的long类型,但是php这边得到的有问题

niezuxue 2016-03-01 08:04:21
奇怪的是有一些数字返回值是正确的,有一些是错误的
从java那边返回6098711893080276992, php得到的是6098711890932793344
但是比如java返回6098768005460656128,php得到的就是一样的。
...全文
591 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
niezuxue 2016-03-02
  • 打赏
  • 举报
回复
用的就是php7 windows和ubuntu都是一样的结果
xuzuning 2016-03-02
  • 打赏
  • 举报
回复
php 的整数是 int32,并做了适当的扩容 直到 php7 才开始支持 int64
简介: thrift是跨语言,server和client通信的一个框架,支持多种协议,二进制,文本http,json等方式,提供高效的数据传输方式。 thrift只负责对数据进行处理,然后在网络内进行传输的工作。不要认为thrift能在*.thrift文件中定义调度之类的工作 thrift通过IDL(接口描述语言)来生成各种语言需要的接口代码。 执行thrift文件命令: javathrift-0.9.1.exe --gen java test.thrift javathrift-0.9.1.exe --gen php test.thrift 生成使用thrift需要的jar包: 下载Ant后, 配置环境变量, ANT_HOME=Ant解压路径。 下载thrift后使用ant编译需要的jar文件。<< cmd, 进入build.xml目录, ant -buildfile build.xml thrift协议protocol: TBinaryProtocol:二进制格式 TCompactProtocol:高效压缩的二进制格式 TDenseProtocol:与TCompactProtocol相比,meta信息略有不同 TJSONProtocol JSON TDebugProtocol text 格式 方便调试 thrift传输层transport: TSocket 阻塞的io TFramedTransport 非阻塞io TFileTransport 可以将一组thrift请求写到文件中 TMemoryTransport 使用内存 I/O TZlibTransport 使用zlib压缩 支持的server TSimpleServer 单线程 阻塞 TThreadPoolServer 多线程 阻塞 TNonblockingServer 多线程 非阻塞 THsHaServer api说是TNonblockingServer的扩展,半同步半异步 可定义的数据类型: 基本类型: bool:布尔值,true 或 false,对应 Java 的 boolean byte:8 位有符号整数,对应 Java 的 byte i16:16 位有符号整数,对应 Java 的 short i32:32 位有符号整数,对应 Java 的 int i64:64 位有符号整数,对应 Javalong double:64 位浮点数,对应 Java 的 double string:未知编码文本或二进制字符串,对应 Java 的 String 结构体类型: struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean 容器类型: list:对应 Java 的 ArrayList set:对应 Java 的 HashSet map:对应 Java 的 HashMap 异常类型: exception:对应 Java 的 Exception 服务类型: service:对应服务的类

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧