【唐老狮】Unity网络通信中的分包、黏包
在进行网络开发时,不管是前后端都需要处理消息的分包和黏包。
那所谓的分包和黏包,它具体的含义是什么呢?
分包:一个消息包被分成了多个消息包进行发送
黏包:一个消息包和另一个消息包黏在了一起
如果通过描述,你无法明白它的意思,那通过下面的这张图,我相信你的脑海里就会产生分包和黏包的画面感了。
具体的表现是什么呢?
在进行网络开发时,我们收发的消息都是以字节数组的形式存在的。
消息A ——> 字节数组A(假设长度为32)
消息B ——> 字节数组B(假设长度为24)
黏包时:
收到的消息为 字节数组A 和 字节数组B 黏在一起的字节数组
该字节数组长度为 32+24=56
分包时:
消息B原本的一个字节数组B,被分成了2段(或更多)
字节数组B1(假设长度为10)
字节数组B2(假设长度为14)
由于有分包和黏包的情况存在,当我们接收到远端发来的消息后,必须合理的对消息(字节数组)进行处理,才能够正常的获取远端数据。
解决方案:
在我正在更新的【唐老狮】Unity网络开发基础 当中,详细的为大家讲解了应该如何处理分包和黏包问题。
【唐老狮】Unity网络开发基础_哔哩哔哩_bilibili
该课程正在7折销售中,通过这套课程的学习,不仅可以学习网络通信基础理论
还可以帮助你完成Unity网络开发需求
购买链接:https://www.taikr.com/goods/show/1164
本课程属于Unity实战就业套餐
了解详情:https://www.taikr.com/goods/show/590
【唐老狮】Unity网络通信中的分包、黏包相关推荐
- 【唐老狮】商业游戏开发前后端程序区别
客户端程序员=前端程序员 包括 Unity程序员 UE程序员 Cocos程序员 Egret程序员 Laya程序员 Flash程序员 等等 服务端程序员=后端程序员 包括 C++程序员 Java程序员 ...
- 【唐老狮】C#四部曲之C#基础:习题汇总
本篇文章对视频教程 <[唐老狮]Unity系列之C#四部曲-C#基础 > 当中的课后练习题进行了汇总,方便同学们统一进行练习和复习 这些习题的解题部分都在本教程中以视频的形式进行了详细讲解 ...
- 【唐老狮】C#四部曲之C#入门:习题汇总
本篇文章对视频教程 <[唐老狮]Unity系列之C#四部曲-C#入门 > 当中的课后练习题进行了汇总,方便同学们统一进行练习和复习 这些习题的解题部分都在本教程中以视频的形式进行了详细讲解 ...
- 【唐老狮】字符编码(ASCII,Unicode和UTF-8)
[什么是字符编码] 字符编码(英语:Character encoding)也称字集码 是把字符集中的字符,编码为指定集合中某一对象,以便文本在计算机中存储或通过网络进行传递. 说人话:计算机里只能存数 ...
- 【唐老狮】C#——转义字符
[转义字符] 强记忆 一句话 ↓↓↓↓ 转义字符 是字符串的一部分 ↓↓↓↓ 用来表示特殊含义 [常用转义字符] \n --换行 \' --单引号 \" --双引号 \\ --反斜杠 ...
- 【唐老狮】C#——多态和vob
截止目前,我们已经学会了面向对象中封装和继承两大特性的相关知识点.简单理解它们,封装就是用代码形容一个现实对象,继承就是复用代码,通过继承可以让类之间建立父子关系,复用一些特征和行为. ...
- 【唐老狮】C#——结构体和类的区别
[结构体和类的区别] 结构体是值类型,类是引用类型 结构体存在栈中,类存在堆中 结构体成员不能使用protected访问修饰符,而类可以 结构体成员变量申明不能指定初始值,而类可以 结构体不能申明无参 ...
- 【唐老狮】C#——类型转换
目前我们学习了变量的知识,我们知道不同的变量类型,存储的数值范围或者存储的数值类型是不同的. 比如不同的存储范围有符号整型sbyte.int.short.long以及无符号整型byte.uint.us ...
- 【唐老狮】C#——封装:运算符重载
目前我们学过的变量中,除了几种自定义的变量(结构体.类.枚举),语言本身的13种常用变量类型byte.int.float等等都默认支持用运算符进行计算,也支持条件运算符进行比较.今天我们要 ...
最新文章
- 【美团】招聘计算机视觉研究岗实习生
- python 四舍五入保留小数输出
- otc机器人氩弧焊机_轻松搞定砂光机前后连线翻转!【富全智能】全自动180度圆筒式翻板机...
- java中map怎么遍历,Java中怎么遍历Map的所有的元素
- 4g无线网卡搭建服务器,我买了一个4G无线网卡,可不知道怎么在手机里使用?
- Office PPT如何切换到返回幻灯片
- Host 'xxx' is not allowed to connect to this MySQL server.
- JSTL和EL的使用
- [Flink]Flink DataStream API 概览
- jquery学习笔记一之window.onload与$(document).ready()区别
- 28.MySQL Variables
- Android_GNSS原始数据转为Rinex文件
- 计算机主机电源功率查,电脑电源功率怎么测试?查看电脑功耗的操作方法
- ActiveMQ--CVE-2015-5254
- springBoot-Quartz 定时任务
- 尚硅谷nodejs入门教程_笔记
- u盘装linux系统简单方法,用u盘安装linux系统的简单方法教程
- 【数据库】四(1)、数据查询之单表查询
- 个人微信协议接口开发
- 基于Ensp企业网的无线组建与实验的仿真设计
热门文章
- 安装vue3.0脚手架
- matlab上升时间,上升时间(上升时间反映了系统的)
- C语言编程经典案例——输出100~1000以内的水仙花数
- 阻止touch事件穿透
- 接入腾讯云直播笔记--直播录制鉴黄配置篇
- 1分钟链圈 | 闪电网络通道数增加29.5%,突破1.1万条通道!EOS 在过去七天区块链活跃度中排名第一...
- 从”超女”和”好男”的”崛起”看中国人的”劣根性”
- linux表示第一块网卡,【单选题】一般情况下,Linux 系统中第一块以太网卡的名称是( )
A. 本地连接1 B. netcard0 C. loop0 D. eth0...
- Vue 新手学习笔记:vue-element-admin 之入门开发教程(v4.0.0 之前)
- 雅讯天地游java戏,雅讯天地RPG大作《铸剑传说》出世