健康小屋协议的服务器

    健康小屋协议的服务器

    一种健康小屋通信服务器的实现方法,基于netty的TCP和UDP协议服务器端,TCP和UDP协议服务端分别指定不同的端口号;健康小屋为客户端,根据IP地址和Port端口号分别连接TCP和UDP协议服务端;

    TCP主要程序结构,如下:

    实现过程为:



    TCP协议服务器端接收客户端发送的MD5校验码,用于身份识别;MD5若校验不通过,则断开连接,重新连接校验,若校验通过,则TCP协议服务器端发送校验通过信息;又身份识别的具体过程可为:健康小屋连接TCP协议服务器后,发送midMD5校验码,mid是客户端唯一编号,服务器通过mid从后台查找对应的version,即版本号和uid,即唯一用户编号,并获取当天的日期,然后以mid+version+uid+date为seed生成MD5值并与健康小屋发送的MD5校验码进行比对,如果对比失败则回复MD5验证错误的信息,服务器主动断开健康小屋的TCP连接;如果比对成功则回复OK信号;其中OK信号可带有一个时间戳,表示健康小屋必须在此时间戳内发送体检数据或日志文件到TCP协议服务器端,否则重新发送校验请求;

    客户端接收到TCP协议服务器端发送的校验通过信息后,发送业务数据,业务数据以字节的形式传输;业务数据一般包括数据长度、文件类型(H/L)、文件数据,文件类型中H代表体检数据、L代表日志文件;


    TCP协议服务器端接收到业务数据后,进行数据解析,并放入数据库中,返回给客户端接收到数据的信息;进行数据解析时,判断文件类型,并根据不同的数据类型把业务数据放入到不同的数据库中,健康小屋发送的文件数据中带有时间戳,表示文件数据产生的时间,TCP协议服务器端根据时间戳判断是否重复接收了体检数据,如果确定重复接收的数据则放弃该数据;如果不是,则解析新接收的数据并入库,完成业务数据解析入库后,返回OK信号给健康小屋

    UDP协议服务器端根据客户端发送的数据的长度不同判断是报警信号还是验证用户信号;

    如果是验证用户信号则解析信号数据,根据信号数据查询数据库并把查询到的数据返回给客户端,过程为:UDP应用层协议可实现验证用户ID和发送用户年龄和性别,用户利用客户端输入auto_id,健康小屋发送给UDP协议服务器端验证请求,与TCP协议服务器端相仿,UDP协议服务器端先校验MD5,验证通过后uid来查询后台并返回信息给健康小屋,表示此用户存在,可以进行体检;否则返回用户不存在信息,拒绝体检请求完成验证。