thrift TBinaryProtocol 数据传输格式
来源:互联网 发布:linux svn服务端搭建 编辑:程序博客网 时间:2024/06/05 17:16
Thrift version 0.9.0
服务端接收和发送数据
接收数据格式
方法数据格式
sz, = unpack('!i', socket.recv(4))if sz < 0: version = sz & -65536 #版本掩码 if version != -2147418112: raise type = sz & 0x000000ff #字符串先读取一个INT(4字节)为字符串长度 len, = unpack('!i', socket.recv(4)) method = socket.recv(len)#读取长度为len的字符串为方法名 seqid, = unpack('!i', socket.recv(4)) #读取一个INT(4字节)为序号
|——4byte—–|——4byte——|—-method len byte—- |—-4byte—-|
|-version/type—|–method len –|—method name ——–|—-seqid—-|
参数数据格式
.......while True: ftype, = unpack('!b', socket.recv(1)) if ftype == 0: raise fid, = unpack('!h', socket.recv(2)) if fid == 1: if ftype == 11: len, = unpack('!i', socket.recv(4)) input = socket.recv(len) #读取的参数 .......
while:
|—–1byte—-|–2byte–|——4byte—— |–argument len byte–|
|—–ftype—-|—-fid—-|–argument len -|——argument ——-|
返回数据格式
D = StringIO()D.write(pack("!i", (-2147418112| 2))) #版本D.write(pack("!i", len(method))) #请求的方法名字长度D.write(method) #请求的方法D.write(pack("!i", seqid)) #请求的序号D.write(pack("!b", 11)) #返回参数的类型 TType 11为字符串D.write(pack("!h", 0)) #id D.write(pack("!i", len("2 from server 1024"))) #返回字符串的长度D.write("2 from server 1024") #返回字符串D.write(pack("!b", 0)) #结束
|–4byte-|———–4byte——-|–method len byte– |—-4byte—-|——-4byte—–|-2byte-|–4byte–|–len byte–|-1byte-|
|—版本–|–请求的方法名字长度-|——请求的方法 —–|-请求的序号-|–返回参数的类型-|—id—|-返回字符串的长度-|-返回字符串-|-结束-|
0 0
- thrift TBinaryProtocol 数据传输格式
- thrift 获取客户端client ip TBinaryProtocol TFramedTransport TNonblockingServerSocket
- Thrift之TProtocol类体系原理及源码详细解析之二进制协议类TBinaryProtocolT(TBinaryProtocol)
- Thrift之TProtocol类体系原理及源码详细解析之二进制协议类TBinaryProtocolT(TBinaryProtocol)
- 数据传输格式xml/json
- W6s数据传输格式
- AJAX笔记-数据传输格式
- ajax的数据传输格式
- AJAX的数据传输格式
- RFID数据传输常用编码格式
- web应用的数据传输格式
- PCIE多通道数据传输格式
- RFID数据传输常用编码格式
- 数据传输的常用格式JSON
- Android数据传输格式(基于JSON格式)
- 分布式系统通信数据传输格式:protocol buffers
- MIPI DSI多通道数据传输的格式
- 万能的数据传输格式——XML
- A - Wireless Network——POJ
- 树莓派自动运行应用程序(脚本及图形界面)
- Linux Shell文本处理命令技巧
- C++ 从数据库读取数据,将数据显示在界面上的TreeCtrl上
- 深搜文件夹中的最大文件
- thrift TBinaryProtocol 数据传输格式
- Hadoop WordCount运行详解
- Node中的全局变量和全局对象
- 63. Unique Paths II 找唯一途径2(中间有路障)
- 滑动冲突(ScrollView嵌套ViewPager,ViewPager再嵌套ListView)
- 求链表的第一个公共节点问题(好未来笔试题)
- g++编译命令选项
- golang学习第一篇 golang简介
- 俄罗斯方块可以永无止境地玩下去吗?