数据通讯通讯协议要领.docVIP

  • 8
  • 0
  • 约6.82千字
  • 约 20页
  • 2017-06-07 发布于湖北
  • 举报
通讯协议 目 录 1 说明 4 1.1 字节顺序 4 1.2 错误码 4 1.3 包格式说明 4 1.4 字符集 5 2 Flag:1 SQL查询协议 6 2.1 错误码 6 2.2 Login:登陆 6 2.3 Active:检测连接 6 2.4 SQLOpen:SQL语句查询 7 2.5 SQLExec:SQL语句执行 7 2.6 BeginTrans:开始事务 8 2.7 CommitTrans:提交事务 8 2.8 SendFile:发送文件 8 3 Flag:2上传文件 10 3.1 错误码 10 3.2 Longin:登陆 10 3.3 Active:检测连接 10 3.4 Dir:获取目录结构 10 3.5 CreateDir:创建目录 11 3.6 DeleteDir:删除目录 11 3.7 FileList:获取文件列表 11 3.8 DeleteFile:删除文件 12 3.9 Upload:上传开始 12 3.10 Data:数据包 13 3.11 Eof:上传完成 13 4 Flag:3下载文件 14 4.1 错误码 14 4.2 Login:登陆 14 4.3 Active:检测连接 14 4.4 Dir:获取目录结构 14 4.5 FileList:获取文件列表 14 4.6 Download:下载文件 15 5 Flag:8 控制协议 16 5.1 错误码 16 5.2 Login:登陆 16 5.3 Active:检测连接 16 5.4 GetClients:获取客户端列表 16 6 Flag:9 日志下发协议 17 说明 IOCPDemo服务器Socket默认监听端口为9999,所有连接服务器的Socket,其发送的第一字节为其身份标志,各个协议标志不相同,不在规定标志内的连接将被服务器断开,并且第一字节要求(默认)6秒内必须发送,否则会被强制断开。 字节顺序 IOCPDemo服务端通讯协议都是采用小头结构(低位在前、高位在后、X86都是采用这类结构)的长度,以后加入的协议都采用小头结构,其它平台都需兼容。 协议都采用匈牙利命名法则,每个单词首字母大写,解析命令不区分大小写,各个命令之间的顺序可以乱。 错误码 为了加强协议的可调试性,对于每个命令返回值增加一个CODE,用来标识发生错误原因,CODE是一个4字节的无符号整数,第一个字节标识Flag,第二个字节标识是那个命令,后面两个字节表示错误。 通用错误码 0正确返回 0不存在的命令 0数据包长度错误(最有可能发生场景是命令高低位反了,服务器对每个数据最大限定为10M) 0数据包格式不正确,没有包含双回车换行 0发生未知错误,服务器返回Exception.Message 0命令不完整,如缺少命令关键字 0命令参数错误,如:是整数的传入了浮点数 0用户不存在或密码错误 0 包格式说明 第一字节为Flag,以后的数据为数据包,每一个数据包格式如下: 首先为数据包长度Len: Cardinal,4Byte;然后为命令数据长度Len:Cardinal,4Byte;然后为命令数据内容,最后为数据内容。数据长度=数据包长度-命令数据长度 一次通讯应用层数据包格式 应用层数据包长度 Len:Cardinal 命令长度 Len:Cardinal 命令 数据 字符集 命令包采用UTF-8字符集进行编码,以便支持一些嵌入式平台只有英文字符的系统。 Flag:1 SQL查询协议 错误码 0SQL查询出错 0SQL执行出错 0已经启动了事务,不能再次启动事务 0启动事务出错 0没有先BeginTrans 0CommitTrans失败 0RollbackTrans失败 Login:登陆 客户端-服务器 { [Request] Command=Login UserName=admin #用户名 Password=admin #密码 } 服务器-客户端 { [Response] Command=Login Code= Error Code #错误码 Message=Message #如果出错,返回错误描述信息 } Active:检测连接 客户端-服务器 { [Request] Command=Active } 服务器-客户端 { [Response] Command= Active Code=

文档评论(0)

1亿VIP精品文档

相关文档