第 2 页 共 17 页
目 录
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
第 3 页 共 17 页
5 Flag:8 控制协议...................................................................................................................16
5.1 错误码......................................................................................................................16
5.2 Login:登陆 ............................................................................................................16
5.3 Active:检测连接 ...................................................................................................16
5.4 GetClients:获取客户端列表.................................................................................16
6 Flag:9 日志下发协议...........................................................................................................17
第 4 页 共 17 页
1 说明
IOCPDemo 服务器 Socket 默认监听端口为 9999,所有连接服务器的 Socket,其发送的第一
字节为其身份标志,各个协议标志不相同,不在规定标志内的连接将被服务器断开,并且第
一字节要求(默认)6 秒内必须发送,否则会被强制断开。
1.1 字节顺序
IOCPDemo 服务端通讯协议都是采用小头结构(低位在前、高位在后、X86 都是采用这类
结构)的长度,以后加入的协议都采用小头结构,其它平台都需兼容。
协议都采用匈牙利命名法则,每个单词首字母大写,解析命令不区分大小写,各个命令之
间的顺序可以乱。
1.2 错误码
为了加强协议的可调试性,对于每个命令返回值增加一个 CODE,用来标识发生错误原因,
CODE 是一个 4 字节的无符号整数,第一个字节标识 Flag,第二个字节标识是那个命令,后
面两个字节表示错误。
通用错误码
错误码
描述
0x00000000
正确返回
0x00000001
不存在的命令
0x00000002
数据包长度错误(最有可能发生场景是命令高低位反了,服务器对
每个数据最大限定为 10M)
0x00000003
数据包格式不正确,没有包含双回车换行
0x00000004
发生未知错误,服务器返回 Exception.Message
0x00000005
命令不完整,如缺少命令关键字
0x00000006
命令参数错误,如:是整数的传入了浮点数
0x00000007
用户不存在或密码错误
1.3 包格式说明
第一字节为 Flag,以后的数据为数据包,每一个数据包格式如下:
首先为数据包长度 Len: Cardinal,4Byte;然后为命令数据长度 Len:Cardinal,4Byte;然后
为命令数据内容,最后为数据内容。数据长度=数据包长度-命令数据长度
一次通讯应用层数据包格式
应用层数据包长度
Len:Cardinal
命令长度
Len:Cardinal
命令
数据
第 5 页 共 17 页
1.4 字符集
命令包采用 UTF-8 字符集进行编码,以便支持一些嵌入式平台只有英文字符的系统。