使用工具:VS2015

使用语言:c#

作者:Gemini_xujian

参考:siki老师-《丛林战争》视频教程

继上一篇文章内容,这节课讲解一下什么是粘包和分包,以及处理粘包和分包问题的解决方案。

粘包和分包是利用socket在tcp协议下内部的优化机制。

1、什么是粘包:通俗地讲,就是在服务器端与客户端发送消息频繁且数据量小的情况下,会自动将多个包整合成一个大包发送过去。

2、什么是分包:在发送一个大数据量的包时,会将数据分开发送。

解决方案:将发送的数据中前四个字节用来保存数据长度信息,一般用int32类型即可,然后,如果每条数据长度大于所保存数据长度信息,说明是粘包问题,则读取完所保存的数据长度信息中的长度大小进行处理,然后再继续读取下面四个字节中保存的数据长度信息,直到完全读取完成。而如果每条数据长度小于所保存数据长度信息中的长度大小,说明是分包问题,则在读取完数据长度信息中的长度大小后,暂时不对数据进行解析,而是等待下一个数据发送过来后继续解析直到等于之前所保存的数据长度信息中的长度为止,而想要将长度信息保存四个字节也需要进行处理和转换,但并不使用encoding.utf8.getbytes()方法,在下一篇中,将在客户端发送数据的时候加上数据长度。

unity网络实战开发(丛林战争)-前期知识准备(008-粘包和分包及解决方案)相关推荐

  1. unity网络实战开发(丛林战争)-前期知识准备(012-UI框架开发)

    使用工具:VS2017,Unity2017.3,DoTween插件 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解 ...

  2. unity网络实战开发(丛林战争)-前期知识准备(011-c#连接数据库并实现增删改查以及sql注入问题)

    使用工具:VS2015,Mysql 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下数据库的前期连接准备以及通过 ...

  3. unity网络实战开发(丛林战争)-前期知识准备(004-开发TCP客户端的接收数据和发送数据)

    使用工具:VS2015 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下客户端的接收数据和发送数据. 首先在现有 ...

  4. unity网络实战开发(丛林战争)-前期知识准备(010-在服务器端解析数据)

    使用工具:VS2015 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下在服务器端解析数据. 首先,同前文类同, ...

  5. unity网络实战开发(丛林战争)-前期知识准备(006-修改服务器端开启异步处理客户端连接请求)

    使用工具:VS2015 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下修改服务器开启一步处理客户端连接请求. ...

  6. unity网络实战开发(丛林战争)-前期知识准备(003-开发服务器端的发送数据和接收数据)

    使用工具:VS2015 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下服务器端的发送数据和接收数据. 上篇文章 ...

  7. unity网络实战开发(丛林战争)-正式开发阶段(013-游戏服务器端框架搭建)

    使用工具:VS2015 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下游戏服务器端的开发. 01-项目目录结构 ...

  8. unity网络实战开发(丛林战争)-正式开发阶段(014-游戏客户端与服务器端连接搭建)

    使用工具:VS2017,unity3d 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 上一篇文章中,我已经把服务器端的框架进行了搭建,接下来, ...

  9. unity网络实战开发(丛林战争)-正式开发阶段(018-声音管理器模块的完善)

    使用工具:VS2017,unity3d 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 上一篇文章中,已经完成了注册事件的处理,接下来将完善声音 ...

最新文章

  1. Zabbix服务器性能优化记录
  2. C++通过vmware.exe检测虚拟机
  3. 第四范式团队KDD Cup世界冠军方案详解:解密共享出行场景中的优化问题
  4. android 集成同一interface不同泛型_【Java视频教程】day30-泛型??
  5. [洛谷P1951]收费站_NOI导刊2009提高(2)
  6. 课时27.base(掌握)
  7. 11尺寸长宽 iphone_弱电工程LED显示屏尺寸规格及计算方法
  8. Java配置Spring时REQUIRED和REQUIRES_NEW 的区别
  9. jetty:Address already in use: bind
  10. 【课本】【No.4】数字特征 离散/连续均值/方差 随机向量 协方差 相关系数 矩 偏度 峰度 多维均值/协方差 运算性质 条件期望 随机个随机向量的和 正态中的条件期望是线性函数
  11. geforce下载旧版驱动_如何在没有GeForce经验的情况下下载NVIDIA驱动程序
  12. 货币转换python代码_在Python中创建货币转换器
  13. 大学里青年教师待遇真的很低吗?
  14. Logo Grabber 一键快速下载网站Logo 的免费插件
  15. 利用IPHONE自带播放器播放视频
  16. cocos2dx android obb,cocos2dx 实现obb包读取 quick2.2.6
  17. 网络数据请求(unity)
  18. 综合素质计算机的知识考点,综合素质常识考题
  19. python爬虫爬取起点小说_python3爬虫-使用requests爬取起点小说
  20. 计算机网络论文作业,论文作业-计算机网络.doc

热门文章

  1. iOS计算两天相差多少天
  2. 【接口幂等性】使用token,Redis保证接口幂等性
  3. 蓝桥牌型种数 C语言解法
  4. 《惢客创业日记》2018.12.18(周二)创业者从0到1的10个阶段(五)
  5. 科士达STATIONAIR系列精密空调远程监控解决方案
  6. 记忆的助记器|如何使用联想记忆法
  7. 2022年宜昌助理工程师职称评审流程和条件是什么呢?甘建二
  8. 高分辨率影像卫星之法国
  9. 用友BQ商业智能平台报表功能
  10. SurfaceView及TextureView区别