啥是粘包和半包,咋解决?

news2024/11/25 12:40:45

写在前面

本文看下半包和粘包。

1:什么是半包和粘包,以及如何解决

因为网络传输数据都是一个数据包一个数据包传输的,就像这样:
在这里插入图片描述
在读取这些数据包时如果读到了数据包A的一部分就是半包。如果是读到了数据包A和数据包B(或者是数据包B的一部分,总之就是把多个数据包混在一起了)就叫做粘包

半包和粘包底层传输是无法解决的,因为网络传输只是数据流,并不知道业务上的需求是如何的,所以想要解决半包和粘包就要业务上来解决,主要以下几种:

1:指定分割符,如换行符,netty中就提供了LineBasedFrameDecoder
2:指定固定大小,不足的部分做填充,netty中就提供了FixedLengthFrameDecoder
3:消息分为两部分,消息头和消息体,其中在消息头中指定长度(如使用int32定长来指定长度),消息体中为数据,netty就提供了LengthFieldBasedFrameDecoder

写在后面

参考文章列表

粘包和半包问题总结 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从网易云音乐宕机事件看软件危机管理-如何保持服务稳定性

引言:当音乐突然停止 想象一下,你正沉浸在网易云音乐精心为你推荐的歌单中,享受着悠闲的周末下午。突然,音乐戛然而止,App反复崩溃,网页上只剩下冰冷的"502 Bad Gateway"。这不是科幻小说的情节,而是2023年8月19日下午真实发生在数百万网易云音乐用户身上的事。 作…

软考-软件设计师(程序设计语言习题)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

「Java 项目详解」API 文档搜索引擎(万字长文)

目录 运行效果 一、项目介绍 一)需求介绍 二)功能介绍 三)实现思路 四)项目目标 二、前期准备 一)了解正排索引 二)了解倒排索引 三)获取 Java API 开发文档 四)了解分词…

《黑神话:悟空》全球正式上线!美猴王硬核出圈!

8月20日,这一日期注定将被铭记为中国游戏史上的辉煌时刻。国产3A大作《黑神话:悟空》正式上线,以其惊人的市场表现和文化深度引发了全球玩家的狂热追捧。这款游戏不仅在国内市场引起了强烈反响,更是在全球范围内掀起了一股不可阻挡…

日元回升,澳元强势,市场静待央行指引

一、美元疲软,日元强势反弹 近期,美国就业数据的大幅下修为市场带来经济衰退隐忧,同时增强了美联储9月降息的预期。在此背景下,美元走势疲软,而日元则借机延续回升势头。周三,美元兑日元一度跌至144.44&a…

Apache SeaTunnel数据处理引擎适配的演进和规划

作者 | Chao Tian (tyrantlucifer),Apache SeaTunnel PMC Member 摘要 Apache SeaTunnel作为一个高性能数据同步工具,以其高效的数据处理能力,为数据集成领域带来了创新。在引擎上,Apache SeaTunnel除了支持自身的Zeta引擎外&am…

UVa1668/LA6039 Let’s Go Green

UVa1668/LA6039 Let’s Go Green 题目链接题意分析AC 代码 题目链接 本题是2012年icpc亚洲区域赛雅加达(Jakarta)赛区的题目 题意 输入一棵n(2≤n≤100000)个结点的树,每条边上都有一个权值。要求用最少的路径覆盖这些边,使得每条…

JAVA家政服务独立多端平台服务系统小程序源码

解锁现代生活新方式✨ —— "家政服务独立用户多端平台系统"全攻略🏠 🚀【开篇:告别繁琐,拥抱智能家政新时代】 在这个快节奏的时代,谁不想回家就能享受一份宁静与舒适呢?但忙碌的工作、琐碎的…

算法日记day 45(单调栈之每日温度|接雨水)

一、每日温度 题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来…

基本数据类型 --- 浮点型

float的机器码表示: 一个float数据 (pow(-1, sign) fraction) * pow(2, exponent - 127) 由上图,可得: (pow(-1, sign) fraction) * pow(2, exponent - 127) ( 1 2^(-2) ) * pow(2, 124-127) 0.15625 其他文章: https://b…

Go第一个程序

package mainimport "fmt"func main() {str : "hello go"fmt.Println(str) }上述很简单,如何使用os包获取命令行参数呢? package mainimport ("fmt""os" )func main() {fmt.Println(os.Args)str : "hello…

typora激活流程

1.安装typora Typora中文官网:Typora 官方中文站 Typora官网:https://typora.io/releases/all 2.打开软件安装位置 找到路径Typora\resources\page-dist\static\js的js文件,使用记事本编辑打开 替换 CtrlF查找 e.hasActivated"true&…

python-逆序数(赛氪OJ)

[题目描述] 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个元素个数为 4 的数列,其元素为 2,4,3,1,则 (2,…

ubuntu20 vmware硬盘空间不够,进行扩容,实操成功!

背景 在编译mysql源码之前只给虚拟机分配了20G的空间,但是实际编译过程中,发现很快20G空间就被用完了,于是需要对已分配空间的虚拟机进行扩容至50G。 如何进行扩容? 注意首先需要在extended那一块先resize,把unloca…

H3C M-LAG与双活网关接口结合应用场景实验

H3C M-LAG与双活网关接口结合应用场景实验 实验拓扑 ​​ 实验需求 此实验需要在模拟器中使用交换机型号 S6850SW3 为接入交换机,连接 PC1 在 VLAN 10,连接 PC2在 VLAN 20,SW3 双上行连接到两台核心交换机SW1 和 SW2 为核心交换机,配置 M-LAG,并作为 VLAN 10 和 VLAN 2…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 07数据中心的边缘

本章将帮助你回答以下问题 可以用哪些方式将 Clos 拓扑连接到外部网终?边缘部署路由协议的最佳实践是什么?企业应如何处理混合云中的连接? 连接模型 为什么要连接到外部世界? 数据中心连接到外部世界的原因很多。如果你要对外提供某种服务(例如搜索服务广告推荐系统或内…

C语言:深入理解文件操作

目录 1. 为什么使用文件? 2. 什么是文件? 2.1 程序文件 2.2 数据文件 2.3 文件名 3. 二进制文件和文本文件? 3.1测试代码: 4. 文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 文件的打开…

【刷题笔记】二叉树2

1 二叉树的层序遍历 上一期我们讲了关于二叉树的前序、中序以及后序遍历的相关内容。然而,还存在一种遍历方式,这种方式非常符合我们人类的正常思维,可以求解很多树相关的问题,比较暴力——二叉树的层序遍历。 二叉树的层序遍历与…

股票买卖的思路与代码

题目 1302:股票买卖 时间限制: 1000 ms 内存限制: 65536 KB 提交数:8660 通过数: 4290 【题目描述】 最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股…

文华软件自动画线 参数自调 多空波段变色线(源码自取)

编写思路 想要随意输入一个点位,即可按照这个点位自动画线,此线可以多空变色,上下突破线时箭头提示并发出声音预警。 代码函数重点解析 A、DRAWSL 绘制直线(段)。 用法: DRAWSL(COND,DATA,SLOPE,LEN,E…