我们在使用TCP协议进行数据的传输时,会出现粘包与分包,只是由于内部的优化机制所导致的。
换句话说:
粘包与分包是以用Socket在TCP协议下内部的优化机制。
1 什么是粘包
例如我们在向服务器传输数据时, 尤其是在频繁的发送一系列琐碎数据时,系统不会立马将消息发送到服务器端,而是会将这些琐碎细小的数据进行粘念结合,形成一个大数据后,才会发送给服务器端。
此时的服务器端只会调用一次receive方法然后一次性接受多个数据的整合。
2 什么是分包
了解了粘包,就很容易理解分包了。
当我们一次性发送一个超大数据的时候。这时候系统就会对这条数据进行分包,将这条超大数据拆分成多个小数据进行发送。
在传输过程中,当发送失败进行重新发送时,大数据不仅占用时间,还占用网速。
此时,服务器端就不会像粘包一样只调用一次receive。若拆分成了十个小数据,则会调用10次receive方法。
3 分包与粘包问题的演示
3.1 粘包
for(int i =