本帖最后由 lindabell 于 2017-1-12 16:42 编辑
事情是这样的,我做了一台设备可以通过app控制,也可以上报温湿度等信息的;使用透传的WIFI模块。
设备从关机到开机会发生很多状态变化,都会上传这些状态;通过串口发送到WIFI模块,然后到服务器。
在服务器接收那边就会出现黏包的现象,由于黏包服务器处理起来非常耗时,应该是3~4s的数据到了数据库看居然花了26s左右。
另外我数据的格式是这样的 55AA+MAC+len+CRC8,黏包就是多包数据被TCP封成一个包了。
希望做个服务器 (要专业做服务器的,不是专业的意见不接受)的坛友,给个意见这样的黏包服务器能不能处理,怎样处理?
注:我是做单片机软件的对服务器一点不懂,但是我需要的是专业的回答,另外回答的不错的;可能还会付费咨询更加详细的,报酬方面可谈。
修改:增加到200元话费,高手希望提示一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
0xa5a5xxx; xxxx表示协议版本
packetLen ;数据包总长度。
aa
bb
cc
.. ..以上是数据包头,下面是附加数据
accachLen ;附加数据长度
data;附加数据数组
应用层把黏包解开 不就可以了吗? 我们都是这样做的
包,你可以自己封装。 每“一堆”数据加上头尾,做成一个所谓的“包”,服务器收到后根据头尾解析。在头中包含长度,这样更可靠。
不过服务器也要写得好才行。比如你一个包是20字节发了2个包。有可能服务器第一次收到了30字节,是第一个包以及第二个包的前前半部分。 然后过了一会儿才收到最后10字节。
服务器必须要能可靠的处理这种情况,才能长期稳定工作。
一周热门 更多>