100元话费+500莫元咨询TCP 黏包服务器怎么处理的问题

2020-01-01 17:38发布

本帖最后由 lindabell 于 2017-1-12 16:42 编辑

事情是这样的,我做了一台设备可以通过app控制,也可以上报温湿度等信息的;使用透传的WIFI模块。
设备从关机到开机会发生很多状态变化,都会上传这些状态;通过串口发送到WIFI模块,然后到服务器。
在服务器接收那边就会出现黏包的现象,由于黏包服务器处理起来非常耗时,应该是3~4s的数据到了数据库看居然花了26s左右。

另外我数据的格式是这样的 55AA+MAC+len+CRC8,黏包就是多包数据被TCP封成一个包了。

希望做个服务器 (要专业做服务器的,不是专业的意见不接受)的坛友,给个意见这样的黏包服务器能不能处理,怎样处理?

注:我是做单片机软件的对服务器一点不懂,但是我需要的是专业的回答,另外回答的不错的;可能还会付费咨询更加详细的,报酬方面可谈。


修改:增加到200元话费,高手希望提示一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
88条回答
xaper
1楼-- · 2020-01-04 04:37
补充下,tcp数据是有校验的,所以可以去掉你的crc校验,加快速度
wswh2o
2楼-- · 2020-01-04 05:20
tcp本来就是提供可靠地数据流,没有包的概念,可靠地做法是从字节流里自己分包。
Pupil
3楼-- · 2020-01-04 09:15
这个就一个字节一个字节的较验呗,不对就错一个字节,直到一整串到CRC8都OK,则认为这是一包
huangrui
4楼-- · 2020-01-04 14:53
 精彩回答 2  元偷偷看……
落叶知秋
5楼-- · 2020-01-04 16:45
lindabell 发表于 2017-1-12 16:47
我也是觉得能够处理的,但是做服务器的人告诉我,他咨询了很多做服务器的人得到的答案是很难处理,有可能 ...

黏包问题是TCP长连接传输中经常会碰到的问题啊,基本都是靠自定义的协议来解析数据进行拆包的。

楼主熟手的话,自个儿写个Demo把黏包问题解决了,给那做服务器的哥们儿参考参考。
aozima
6楼-- · 2020-01-04 21:21
MQTT解决你的问题,TCP的粘包是不可控。
即使你发出是分开的,中间的各级路由器也可能才你重新粘上或拆开。

一周热门 更多>