TCP/IP 协议没有粘包问题,没有粘包问题!!!!

yufei       5 年, 7 月 前       895

每次看到有人说 TCP/IP 协议有粘包问题,我的内心就是崩溃的。

TCP/IP 协议是一个流式协议,也就是一个自来水管协议。

从某些方面说 TCP/IP 协议其实就是 自来水管,对,只是水管而已

当我们调用 write() 方法写入数据的时候,就是把水/油 等东西倒进 水管 的一端。 当我们使用 read() 方法读取数据的时候,就是用杯子在 水管 的另一端 接水

市面上所谓的 粘包 问题,是接水的时候杯子大了或者小了,导致部分水没接到。

因此,最好的实现方式,就是拿一个 来接水,或者拿一个 中转,把多出来的水先放到

这两种实现方式

  1. 第一种就是把 read() 读的字节数改成改成更大的,但这样可能会造成多读,可以理解为你拿了一个比较大的水杯**

  2. 第二种就是把 read() 读的数据放到一个 缓冲区 Buffer 中,然后每次再按需从 缓冲区 读数据

转变下思维,如果认为有 粘包 问题,本来很简单的解决方案会变得超级复杂

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.