Netty实战一:接入多种数据协议时半包问题处理

测试:多次tcp工具模拟半包接收
全部数据


image.png

模拟网络延时导致的多次接收
第一次发送


image.png

第二次发送


image.png

第三次发送


image.png

下图是三次发送时的接收情况,可以看出在第三次接收时,就收的就不是拼装好的全部数据了,那么这个拼装是在哪里进行的呢,是在decoder中,所以当多种协议同时接入netty时,一定得想办法让各自的数据百分之百的到各自的decoder中,否则,当同一条数据接收超过2次时(半包问题),会解析不正确


image.png

注:通常在内存中会维护一个clientId和channel一一对应的Map,在这里判断的时候,可以通过这个和数据协议的不同,一起来判断当前数据是属于哪个decoder

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,273评论 19 139
  • 第一章 概述 一、协议定义 为网络中互相通信的对等实体间进行数据交换二建立的规则、标准或约定,保证实体在计算机网络...
    丿曰阅读 14,918评论 0 6
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,499评论 6 174
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,087评论 6 13
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,499评论 0 8

友情链接更多精彩内容