首页 > 其他分享 >socket 接收数据时粘包处理

socket 接收数据时粘包处理

时间:2024-04-01 09:44:25浏览次数:23  
标签:socket 粘包 分包 接收数据 数据包 框内

socket在接收数据时,经常会因为网络延迟、缓存区数据处理不及时等原因造成收到的数据是多个包黏在一起的情况。如下图所示

 图中红色框部分是通讯的 心跳包

图中黄色框部分和未框选部分是 两包  数据包

所以可见此时缓存区里面同时存在了一个心跳包,两个数据包

  如何分包(此处仅针对几个完整的数据包在一起的情况)

一般在定义通讯协议的时候就会把 前几位 定义为指示数据包长度的位

例如上图中红色框内前四位是 0020 就表示这个数据包长度为 20 位

上图黄色框内前四位是 0231 就表示这个数据包长度为 231 位

如此一来 分包也就变的简单了,两句话

 

 分完第一包再根据第一包的总长度分第二包的总长度。

 

标签:socket,粘包,分包,接收数据,数据包,框内
From: https://www.cnblogs.com/xuexz/p/18107786

相关文章

  • 使用React 18和WebSocket构建实时通信功能
    1.引言WebSocket是一种在Web应用中实现双向通信的协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求。在现代的实时应用中,WebSocket经常用于实时数据传输、聊天功能、实时通知和多人协作等场景。在本篇博客中,我们将探索如何在React18应用中使用WebSocket来......
  • windows下socket客户端编程示例
    #include<iostream>#include<winsock2.h>#include<ws2tcpip.h>#include<windows.h>#pragmacomment(lib,"Ws2_32.lib")intsocket_client_demo(char*addr,intport){ charrecvbuf[1024]={0}; intretVal=-1;#......
  • WebSocket学习
    WebSocket是什么?是一种协议,设计用于提供低延迟、全双工和长期运行的连接什么是全双工?通信的两个参与方可以同时发送和接收数据,不需要等待对方的响应或传输完成WebSocket的作用是?实现实时通信在WebSocket之前都用什么技术来模拟实现实时通信?轮询定期向服务器发送请求......
  • CAPL如何使用socket套接字实现TCP通信(数据传输)
    书接上回《CAPL如何使用socket套接字实现TCP通信(建立连接)》,当TCP建立连接后,就可以传输数据了。不管是client还是server,都是使用相同的函数传输应用层数据。tcpSend(clientSocket,"12345",5);但这里有一点值得注意:server端传输数据的socket是serverDataSocket,而不是s......
  • flutter加载网络图片错误EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE The following
    在flutter里使用image.network加载网络图片遇到错误══╡EXCEPTIONCAUGHTBYIMAGERESOURCESERVICE╞════════════════════════════════════════════════════ThefollowingSocketExceptionwasthrownresolvingani......
  • 股票行情数据API | 实时行情数据接口websocket接入方法
    今天给大家带来一个技术干货分享,如何通过接口API订阅并接入实时行情数据源报价,它的方法与步骤一、API地址及传参说明支持以下产品品类:美股、港股、A股、外汇、贵金属、商品、数字币github:https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-a......
  • stm32串口使用dma接收数据全为0发送正常
    cubemx版本:keil版本:当使用cubeMX生成代码时,需要调整dma初始化和串口初始化的顺序,在3处那里调整,不然串口接收的数据全是0,未知原因,只找到办法......
  • 鸿蒙应用开发-录音并使用WebSocket实现实时语音识别
    功能介绍:录音并实时获取RAW的音频格式数据,利用WebSocket上传数据到服务器,并实时获取语音识别结果,参考文档使用AudioCapturer开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:AudioCapturer8+和@ohos.net.webSocket(WebSocket连接)。知识点:熟悉使用AudioCapturer录......
  • 【虚幻引擎】DTWebSocketServer 蓝图创建WebSocket服务器插件使用说明
    本插件可以使用蓝图创建WebSocket服务器,并监听响应数据。下载地址在文章最后。 1.节点说明CreateWebSocketServer–创建WebSocket服务器对象并开启监听创建一个WebSocket服务器对象,并监听相应端口,连接地址为ws://IP:PORT,比如ws://192.168.1.5:9001返回的对象需要......
  • Qt QTcpSocket 对连接服务器中断的不同情况进行判定
    简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况   客户端网线断开   客户端网络断开   客户端通过HTTP代理连接服务器,代理机器断开代......