IOCPDemo通讯协议

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IOCPDemo通讯协议

协议描述文档

联系人

SQLDebug_Fan

fansheng_hx@

/SQLDebug_Fan

免责说明:此文档仅作为技术交流使用,切勿用于商业用途。

目录

1说明 (4)

1.1字节顺序 (4)

1.2错误码 (4)

1.3包格式说明 (4)

2Flag:1 SQL查询协议 (5)

2.1错误码 (5)

2.2Login:登陆 (5)

2.3Active:检测连接 (5)

2.4SQLOpen:SQL语句查询 (6)

2.5SQLExec:SQL语句执行 (6)

2.6BeginTrans:开始事务 (7)

2.7CommitTrans:提交事务 (7)

2.8SendFile:发送文件 (7)

3Flag:2上传文件 (9)

3.1错误码 (9)

3.2Longin:登陆 (9)

3.3Active:检测连接 (9)

3.4Dir:获取目录结构 (9)

3.5CreateDir:创建目录 (10)

3.6DeleteDir:删除目录 (10)

3.7FileList:获取文件列表 (10)

3.8DeleteFile:删除文件 (11)

3.9Upload:上传开始 (11)

3.10Data:数据包 (12)

3.11Eof:上传完成 (12)

4Flag:3下载文件 (13)

4.1错误码 (13)

4.2Login:登陆 (13)

4.3Active:检测连接 (13)

4.4Dir:获取目录结构 (13)

4.5FileList:获取文件列表 (13)

4.6Download:下载文件 (14)

5Flag:8 控制协议 (15)

5.1错误码 (15)

5.2Login:登陆 (15)

5.3Active:检测连接 (15)

5.4GetClients:获取客户端列表 (15)

6Flag:9 日志下发协议 (16)

1说明

IOCPDemo服务器Socket默认监听端口为9999,所有连接服务器的Socket,其发送的第一字节为其身份标志,各个协议标志不相同,不在规定标志内的连接将被服务器断开,并且第一字节要求(默认)6秒内必须发送,否则会被强制断开。

1.1 字节顺序

IOCPDemo服务端通讯协议都是采用小头结构(低位在前、高位在后、X86都是采用这类结构)的长度,以后加入的协议都采用小头结构,其它平台都需兼容。

协议都采用匈牙利命名法则,每个单词首字母大写,解析命令不区分大小写,各个命令之间的顺序可以乱。

1.2 错误码

为了加强协议的可调试性,对于每个命令返回值增加一个CODE,用来标识发生错误原因,CODE是一个4字节的无符号整数,第一个字节标识Flag,第二个字节标识是那个命令,后面两个字节表示错误。

通用错误码

1.3 包格式说明

第一字节为Flag,以后的数据为数据包,每一个数据包格式如下:

首先为数据包长度Len: Cardinal,4Byte;

然后为数据包内容,长度为Len。

每个数据报包含可以两个部分内容:命令或数据,也可以只包含命令或者只包含数据,命令和数据以双回车换行分隔,每个包必须包含双回车换行!

2Flag:1 SQL查询协议

2.1 错误码

2.2 Login:登陆

客户端->服务器

{

[Request]

Command=Login

UserName=admin #用户名

Password=admin #密码

}

服务器->客户端

{

[Response]

Command=Login

Code= Error Code #错误码

Message=Message #如果出错,返回错误描述信息}

2.3 Active:检测连接

客户端->服务器

{

[Request]

Command=Active

}

服务器->客户端

{

[Response]

Command= Active

Code= Error Code #错误码

Message=Message #如果出错,返回错误描述信息

}

2.4 SQLOpen:SQL语句查询

客户端->服务器

{

[Request]

Command=SQLOpen双回车换行SQL语句

}

服务器->客户端

{

[Response]

Command=SQLOpen

Code= Error Code #错误码

Message=Message #如果出错,返回错误描述信息

}

如果查询成功,则开始按照SendFile协议开始下发数据。

2.5 SQLExec:SQL语句执行

客户端->服务器

{

[Request]

Command=SQLExec双回车换行SQL语句

}

服务器->客户端

{

[Response]

Command=SQLExec

Code= Error Code #错误码

Message=Message #如果出错,返回错误描述信息

EffectRow=n #如果执行成功,则下发SQL语句执行影响行数}

相关文档
最新文档