- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
与客户端数据协议规范后更新)
数据包构成
OG1的例子
0017SOH10SOHSOHOG1SOH3SOH1SOH0024SOH10SOHSOHSSOH000
001SOH1000SOHEOT
协议规范定义了,客户端与本服务器间的通讯数据格式,目前考虑的网络协议采用 TCP方式
考虑到客户端处理数据包的方便性,包结构的设计尽量考虑简单一些,这样牺牲了一些效率,但带 来了方便。
每个包分为两部分
包头(这里里包头不是 TCP/IP的包头)
包内容
包头结构:
定义:域间隔符为: SOH=chr(1),包结束符为:EOT=chr(4)包后续标志为:ETX=chr(3)
包头长度SOH
指令序号SOH
保留SOH
指令SOH
数据列数SOH
数据行数SOH
解释:每个域的格式都是字符窜形式。
包头长度:固定 4个字节,包头的总长度(字节) (鼓最大为9999字节)
指令序号:按顺序生成的,每产生一个新的指令,就产生一个相应的序号,请求包和应答
包有相同的指令序号, 指令序号用来标志传送的包所从属的指令, 在数据包过
大,必须分包传送时,须保持指令序号一致,否则应用将无法保证指令数据的 完整生成。
由于客户端和服务器端都有可能发起指令, 二者使用的序号如何避免重复呢?
目前采用简单的分段方式,即:客户端生成的包在 (1-99999)循环使用
而服务器的包在(100001-199999 )循环使用
保留:目前可以留空不填,为安全等因素考虑保留
指令:固定3字节,表示系统特定的指令,具体指令见指令表
数据列/行数:每个指令的数据都可以看作一个二维表。数据列数必须给出,但数据行数 却可以指定为 0,数据行数为0的情况,表示数据的行数无法确定,必须读到包 内容的 EOT 才能结束
包内容结构:
包长度 SOH 指令序号 SOH 保留 SOH
数据(1,1) SOH 数据(1,2)SOH ……?数据(1,n) SOH
数据(2,1) SOH 数据(2,2)SOH ……?数据(2,n) SOH
数据(m,1) SOH 数据(m,2)SOH ……?数据(m,n) SOH EOT
对于包长度过大 (9999)的数据包,则需要分包传送:
只须在每个包的结尾,将包结束标志替换为后续标志,形式如下:
包长度 SOH
指令序号 SOH
保留SOH
数据(1,1) SOH 数据(1,2)SOH ……?数据(1,n) SOH
数据(2,1) SOH 数据(2,2)SOH ……?数据(2,n) SOH
数据(k,1) SOH 数据(k,2)SOH ……?数据(k,n) SOH ETX
后续包可以有多个:
包长度 SOH
指令序号 SOH
保留 SOH
数据(k+1,1) SOH 数据(k+1,2)SOH ……?数据(k+1,n) SOH
数据(k+2,1) SOH 数据(k+2,2)SOH ……?数据(k+2,n) SOH
数据(l,1) SOH 数据(l,2)SOH ……?数据(l,n) SOH ETX
包长度 SOH
指令序号 SOH
保留 SOH
数据(p,1) SOH 数据(p,2)SOH ……?数据(p,n) SOH
数据(p+1,1) SOH 数据(p+1,2)SOH ……?数据(p+1,n) SOH 数据(m,1) SOH 数据(l,2)SOH ……?数据(m,n) SOH EOT
由于我们利用的是 TCP协议,包传送中的丢包问题已经在传诵层解决了, 无须再考虑中间的丢包问题,
指令定义:
系统保留:
第一位 S保留为系统内部使用。
SQL:客户端的SQL调用
由客户端发送到服务端,直接调用 SQL主要为了简化哪些与服务端关系不大的数据存储,数据获取
等调用,这样的调用可以简化服务端程序的编写,不用改写大量的代码。
项目
值
备注
指令
SQL
数据列数
调用时确定
数据行数
1
以下为数据列说明
1
UID
用于客户端异步调用确定返回 的UID Str型
2
TYPE
1、 直接的SQL指令
2、 存储过程
3
SQL指令
若type=1则为SQL串
type=2则为存储过程名
4
参数1类型
右为存储过程,依次放类型和参 数值
参数类型用于确定存储过程调
用中是否加引号
C字符型
N非字符型
5
参数1值
6
参数2类型
7
参数2值
RQ1:客户端的SQL调用结果返回
由服务端发送到客户端,直接调用 SQL结果返回,用于标记调用是否成功。
项目
值
备注
指令
RQ1
数据列数
3
数据行数
1
以下为数据列说明
1
UID
用于客户端异步调用确定返回 的UID Str型
2
RETCODE
0:调用失败
1:调用成功
3
MSG
返回信息,主要是错误时返回错 误信息
4
您可能关注的文档
最近下载
- 供应商产能规划.pptx VIP
- 人音版 音乐六年级上册第二课悠扬民歌《妈妈格桑拉》 课件(共22张PPT)(含音频+视频).pptx VIP
- 2024年《中华人民共和国统计法》新修改修正内容宣传解读ppt培训课件 (1).pptx VIP
- 肿瘤患者的营养治疗及全程管理.ppt VIP
- 办公家具采购投标方案(技术方案).docx VIP
- 7 危险性较大的分部分项工程(附着式升降脚手架)旁站监理记录表.doc VIP
- 防火防电安全教育(课件)-小学生主题班会.pptx VIP
- 品牌培训PPT课件.pptx VIP
- 利妥昔单抗在膜性肾病中应用的专家共识(2022版)解读.pptx VIP
- DG_TJ08-109-2017:城市轨道交通设计规范.pdf VIP
原创力文档


文档评论(0)