首页新闻找找看学习计划

通信协议设计方案

0
悬赏园豆:10 [待解决问题]

我想做个socket通信程序,不知道怎么设计通信协议,自己写的感觉太差劲,想请教下有没有哪位大神专业一点指导下,或者应该参考下什么书籍呢?

上高楼的主页 上高楼 | 初学一级 | 园豆:193
提问于:2017-11-16 21:25
< >
分享
所有回答(5)
0

你要做什么?

吴瑞祥 | 园豆:28729 (高人七级) | 2017-11-16 23:10
0

又不是喊你做通讯调制调解,不需要好多的专业性。

你可以借鉴一些通讯案列,然后按照自己的需求抉择单工or双工。

封包无非头、body、校验一类信息,这个也是根据需求来抉择。

其实作为自己写通讯,上面都是可以不要的,比如你可以基于wcf、mq、zmq之类的,然后只需对body进行封包即可,而body封包你可以使用现成的soap,或者json,或protobuff等,就能达成你说想要的。

花飘水流兮 | 园豆:10527 (专家六级) | 2017-11-17 09:00
0

学个标准的。比如Modelbus

数据酷软件 | 园豆:37 (初学一级) | 2017-11-17 13:03
0

目录

 

1       协议描述... 4

数据类型和格式定义... 5

1.1        数据类型定义... 5

1.2        包格式概述... 5

1.3        包格式布局... 5

2       通信接口包格式定义... 6

2.1        网络连接状态(心跳包)检测... 6

2.1.1         网络连接状态查询语法(由设备发给Server端) 6

2.1.2         网络连接状态查询应答语法(由Server发给设备) 6

2.2        设备认证... 6

2.2.1         公话认证(由设备发给Server端) 6

2.2.2         公话认证应答(由Server发给设备) 6

3       参数取值定义... 7

3.1        功能号(func_no)取值... 7

 

1       协议描述

(1).设备与管理平台进行数据通讯。本质上是基于TCP/IP协议之上的应用层协议,以TCP协议进行数据传输,采用请求/应答的同步通讯模型实现。

(2).本协议实现的业务功能:

l  宿舍人脸识别签到

数据类型和格式定义

 

1.1   数据类型定义

类型

说明

String

字符串。左齐右补空格(ASCII码0x20),字符串的最后一字符不可为空格。

n[String]

n个长度相同的字符串

Integer

定长字符串, 它由一系列的10进制字符组成(‘0’---‘9’),右齐左补‘0’(ASCII码0x30)。

Date

8位定长String,格式:YYYYMMDD

DateTime

14位定长String,格式:YYYYMMDDHHMISS

Binary

二进制数据

 

1.2   包格式概述

包格式

包长度

功能号

序列号

包内容

4

2

4

=(包长度– 10)

1.3   包格式布局

下面是一个完整包格式的布局:

 

包格式

长度

类型

说明

包长度

4

Integer

此域表示消息包的长度(包含信息头长度),包格式的最大包体长度为9999字节

功能号

2

String

取值参照第3.1节

序列号

4

Integer

本协议使用在异步通信模式下,此域由消息发起者设定,应答者对应给回此序列号。

序列号范围:0001-9999,循环使用。

包内容

 

Multi

包格式里必须包含的参数

 

 

2       通信接口包格式定义

2.1   网络连接状态(心跳包)检测

2.1.1   网络连接状态查询语法(由设备发给Server端)

序号

域名

长度

类型

描述

1

xt_datetime

14

Datetime

设备的当前时间

 

2.1.2   网络连接状态查询应答语法(由Server发给设备)

序号

域名

长度

类型

描述

1

valid_flag

1

Integer

1 成功接收到

注:当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,连续发送N-1次后仍未得到响应则断开此连接。现阶段建议取值为:C=1分钟,T=60秒,N=4。

2.2   设备认证

2.2.1   设备认证(由设备发给Server端)

序号

域名

长度

类型

描述

1

DeviceId

18

String

公话ID

2

Reserved

8

String

保留

 

2.2.2   设备认证应答(由Server发给设备)

序号

域名

长度

类型

描述

1

valid_flag

1

Integer

1:认证成功

0:认证失败

 

2.3   识别信息

2.3.1   信息发送(由Server发给设备端)

序号

域名

长度

类型

描述

1

count

2

Integer

发送的姓名数量

2

Name

12

N[String]

姓名

3

Reserved

8

String

保留

注:发送时,包头的序列号全部默认为0000,该条信息不需要返回

 

 

3       参数取值定义

3.1   功能号(func_no)取值

功能

取值

设备认证

01

网络连接状态查询

02

识别信息

03

 

前几天刚做的一个安卓与服务器通信的协议

百鸟朝凤 | 园豆:54 (初学一级) | 2017-11-17 13:32
0

写的挺好,搜藏了。

{[(沙加)]} | 园豆:202 (菜鸟二级) | 2019-08-13 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册