粘包和分包
----
TCP 传输中的 粘包 和 分包 情况 :
分包 : 发送的数据量过大 , 大于 TCP 发送缓冲区的剩余空间 , 则产生分包 ; 发送的数据量大于 TCP 最大报文长度 , 也会产生分包...;
粘包 : 发送的数据量过小 , 小于 TCP 发送缓冲区剩余空间大小 , TCP 机制会将多次写入缓冲区的数据 , 一次性发送出去 , 这样就产生了粘包的情况 ; 接收端如果没有及时读取接收缓冲区中的数据..., 也会造成粘包情况 ;
TCP 开发中 , 粘包和分包是必然出现的 , 无法避免 ;
二、TCP 粘包和分包解决方案
----
包头定义长度 : 定义数据包的包头信息 , 在包头中定义数据包长度 ,...这样就知道当前包的大小 , 接收到数据包以后 , 就可以知道该数据报是否是完整的包 , 是否有粘包 , 分包的情况 ;
数据包首尾边界 : 在数据包前后加上包头标识 和 包尾标识 , 为数据包添加边界...Java 服务器使用 Protobuf
----
编写 Java 服务器端软件 , 使用 eclipse 或 IntelliJ IDEA 开发环境 , 将 Android Studio 中使用的 Protobuf