Java 传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议:TCP 协议和 UDP 协议,但作为互联网中最常用的传输层协议 TCP,在使用时却会导致粘包和半包问题。
什么是粘包?
什么是半粘包?
什么情况下出现粘包问题?
在socket编程中程序的读写数据需求在图中 socket buffer中操作,粘包问题就出现在 socket buffer 中,程序在发送报文数据时可能存在连续情况。当socket buffer满了会进行自动flush 接受报文数据方就可能出现粘包或半年包问题。
flush操作就是将报文数据从 socket buffer 通过网卡发送给接收方。
粘包问题
当报文数据小于socket buffer时,so