本发明涉及数据处理,计算机应用领域,尤其涉及的是一种gis系统实时数据传输方法。
背景技术:
:协议是计算机之间传输数据的一些规范,人与人之间的交流使用语言,计算机之间的相互通信也有一种语言——网络协议。简言之,网络协议即计算机之间相互通信需要共同遵守的规定和规则,常见的网络协议有http、smtp、pop3、ftp等。自定义网络协议可以简单地理解为一个特定数据按照特定格式组织的、在特定网络系统中传输的字符串,并且由多个字段组成,每个字段表示特定的含义、并且字段之间的传输顺序在设计时已经固定、不可调换,当使用自定义协议在系统的服务器端和客户机端传递数据时,两端可以根据事先定义的协议字段含义及顺序解析出数据进行相应处理。自定义协议是由网络开发者定义、在应用层传输、仅在网络系统内有效、由一系列数据组成的字节流。对于不同的系统,所需要传输的数据类型也各有不同,并且为了在数据发送端和数据接收端高效处理数据,就需要制定高效的自定义协议,使数据传输更加准确。计算机网络广泛而深入的应用,使得需要传输的数据也越来越多样化,实际应用中常常出现现有协议无法满足新的需求的情况,这就需要添加自定义协议。因为gis系统传输数据的需要,我们设计了一套新的协议,用来传输位置信息等满足gis系统的信息。技术实现要素:为了解决现有的协议无法满足gis系统的特定需求,提高在传输过程中的传输效率和安全性,本发明提出了一种gis系统实时数据传输方法。本发明解决其技术问题所采用的技术方案是:一种gis系统实时数据传输方法,包括以下步骤:1)参数初始化,过程如下:1.1)设置计时器初始值为0s,最大重连时间间隔为320s;1.2)设置数据优先级队列,发送优先级队列sendqueue1,sendqueue2,sendqueue3;2)封装数据包,数据包的格式如下:2114—16headtypeprioritydatalengthdataverify其中,head是数据包的协议头,占用2个字节,值为0x1110;type表示数据包的类型,占用1个字节,取值为0x00到0xff之间的十六进制数,0x01表示普通数据信息,0x02表示数据重发请求信息,0x03表示心跳响应信息,0x04数据接收应答信息;priority表示数据发送和数据接收处理的优先级,占用一个字节;datalength表示数据包的长度,占用4个字节;data表示数据包,占用字节由数据包大小决定;verify表示校验字段,占用16字节,是数据包在md5加密后的产生的128位的散列值;3)数据发送过程:3.1)服务端阻塞等待客户端连接,如果有客户端建立连接,则建立数据交互通道,进入步骤3.2);3.2)判断是否有数据向服务端发送,有则进入步骤3.3),否则进入步骤4);3.3)判断定时器是否启动,是则关闭定时器,然后进入步骤3.4),否则进入步骤3.4);3.4)获得数据,生成数据的类型,进入步骤3.5);3.5)生成优先级,进入步骤3.6);3.6)将数据放入md5算法中生成128位校验码,进入步骤3.7);3.7)按数据包的优先级放入优先级队列,进入3.8);3.8)发送数据包;4)数据接收过程:4.1)判断是否有数据接收,有则进入步骤4.2),否则进入4.9);4.2)判断定时器是否启动,是则关闭定时器,否则进入步骤4.3);4.3)解析数据包,获得包类型,如果是0x01,则进入步骤4.4);如果是0x02,则进入步骤4.5);如果是0x03,则进入步骤4.6);如果是0x04则进入步骤4.7);4.4)获取数据包数据内容,进入步骤4.8);4.5)数据包优先级提升至2,向服务器重发数据包;4.6)获取心跳响应包;4.7)获取数据接收应答包;4.8)校验数据包中的数据是否正确,如果数据正确,发送数据应答包,否则发送数据重发请求数据包;4.9)判断心跳检测定时器是否启动,是则进入步骤4.10),否则进入步骤4.11);4.10)判断定时器定时时长是否超过320s,是则进入步骤4.12),否则进入步骤4.13);4.11)启动定时器,发送心跳检测包,继续监听是否有数据发送或者接收;4.12)断开连接;4.13)发送心跳检测包,继续监听是否有数据发送或者接收。本发明的有益效果为:适用于特定系统的特定数据交互,提高了数据在传输过程中的传输效率和准确性,提高了传输数据的安全性。附图说明图1是一种gis系统实时数据传输方法数据接收和发送总流程图。具体实施方式下面结合附图对本发明作进一步描述。参照图1,一种gis系统实时数据传输方法,包括以下步骤:1)参数初始化,过程如下:1.1)设置计时器初始值为0s,最大重连时间间隔为320s;1.2)设置数据优先级队列,发送优先级队列sendqueue1,sendqueue2,sendqueue3;2)封装数据包,数据包的格式如下:2114—16headtypeprioritydatalengthdataverify其中,head是数据包的协议头,占用2个字节,值为0x1110;type表示数据包的类型,占用1个字节,取值为0x00到0xff之间的十六进制数,0x01表示普通数据信息,0x02表示数据重发请求信息,0x03表示心跳响应信息,0x04数据接收应答信息;priority表示数据发送和数据接收处理的优先级,占用一个字节;datalength表示数据包的长度,占用4个字节;data表示数据包,占用字节由数据包大小决定;verify表示校验字段,占用16字节,是数据包在md5加密后的产生的128位的散列值;3)数据发送过程:3.1)服务端阻塞等待客户端连接,如果有客户端建立连接,则建立数据交互通道,进入步骤3.2);3.2)判断是否有数据向服务端发送,有则进入步骤3.3),否则进入步骤4);3.3)判断定时器是否启动,是则关闭定时器,然后进入步骤3.4),否则进入步骤3.4);3.4)获得数据,生成数据的类型,进入步骤3.5);3.5)生成优先级,进入步骤3.6);3.6)将数据放入md5算法中生成128位校验码,进入步骤3.7);3.7)按数据包的优先级放入优先级队列,进入3.8);3.8)发送数据包;4)数据接收过程:4.1)判断是否有数据接收,有则进入步骤4.2),否则进入4.9);4.2)判断定时器是否启动,是则关闭定时器,否则进入步骤4.3);4.3)解析数据包,获得包类型,如果是0x01,则进入步骤4.4);如果是0x02,则进入步骤4.5);如果是0x03,则进入步骤4.6);如果是0x04则进入步骤4.7);4.4)获取数据包数据内容,进入步骤4.8);4.5)数据包优先级提升至2,向服务器重发数据包;4.6)获取心跳响应包;4.7)获取数据接收应答包;4.8)校验数据包中的数据是否正确,如果数据正确,发送数据应答包,否则发送数据重发请求数据包;4.9)判断心跳检测定时器是否启动,是则进入步骤4.10),否则进入步骤4.11);4.10)判断定时器定时时长是否超过320s,是则进入步骤4.12),否则进入步骤4.13);4.11)启动定时器,发送心跳检测包,继续监听是否有数据发送或者接收;4.12)断开连接;4.13)发送心跳检测包,继续监听是否有数据发送或者接收。本实例以位置信息传输系统为例,一种gis系统实时数据传输方法,包括以下步骤:1)参数初始化,过程如下:1.1)设置计时器初始值为0s,最大重连时间间隔为320s;1.2)设置数据优先级队列,发送优先级队列sendqueue1,sendqueue2,sendqueue3;2)封装数据包,数据包的格式如下:2114—16headtypeprioritydatalengthdataverify其中,head是数据包的协议头,占用2个字节,值为0x1110;type表示数据包的类型,占用1个字节,取值为0x00到0xff之间的十六进制数,0x01表示普通数据信息,0x02表示数据重发请求信息,0x03表示心跳响应信息,0x04数据接收应答信息;priority表示数据发送和数据接收处理的优先级,占用一个字节;datalength表示数据包的长度,占用4个字节;data表示数据包,占用字节由数据包大小决定;verify表示校验字段,占用16字节,是数据包在md5加密后的产生的128位的散列值;3)数据发送过程:3.1)服务端阻塞等待客户端连接,如果有客户端建立连接,则建立数据交互通道,进入步骤3.2);3.2)判断是否有数据向服务端发送,有则进入步骤3.3),否则进入步骤4);3.3)判断定时器是否启动,是则关闭定时器,然后进入步骤3.4),否则进入步骤3.4);3.4)获得数据,生成数据的类型,进入步骤3.5);3.5)生成优先级,进入步骤3.6);3.6)将数据放入md5算法中生成128位校验码,进入步骤3.7);3.7)按数据包的优先级放入优先级队列,进入3.8);3.8)发送数据包;4)数据接收过程:4.1)判断是否有数据接收,有则进入步骤4.2),否则进入4.9);4.2)判断定时器是否启动,是则关闭定时器,否则进入步骤4.3);4.3)解析数据包,获得包类型,如果是0x01,则进入步骤4.4);如果是0x02,则进入步骤4.5);如果是0x03,则进入步骤4.6);如果是0x04则进入步骤4.7);4.4)获取数据包数据内容,进入步骤4.8);4.5)数据包优先级提升至2,向服务器重发数据包;4.6)获取心跳响应包;4.7)获取数据接收应答包;4.8)校验数据包中的数据是否正确,如果数据正确,发送数据应答包,否则发送数据重发请求数据包;4.9)判断心跳检测定时器是否启动,是则进入步骤4.10),否则进入步骤4.11);4.10)判断定时器定时时长是否超过320s,是则进入步骤4.12),否则进入步骤4.13);4.11)启动定时器,发送心跳检测包,继续监听是否有数据发送或者接收;4.12)断开连接;4.13)发送心跳检测包,继续监听是否有数据发送或者接收。以上阐述的是本发明给出的一个实施例表现出来的良好效果,本发明不仅适合上述实施例,在不偏离本发明基本思想及不超出本发明实质内容的前提下可对其做种种改进加以实施。当前第1页12