拆包:发送方发送一条数据包,接收方拆成多分数据包
粘包:发送方发送多条数据包,接收方合成一条数据包
粘包举例:
发送方发送 两条数据包
send("hello")
send("world")
接收方发生粘包 接收到的消息是 ----》》 helloworld
拆包举例:
发送方发送一条数据
send("helloworld")
接收方拆成两个包
hello
world
发生原因:
1.发送方放松的数据频繁但是数据包小,导致粘包
2.接受方的cpu强大,可以接受的数据包大,导致粘包
3.发送方数据包大接收方的cpu弱小,导致拆包
解决办法:
1.为每个数据包添加长度
2.为每个数据包添加结尾符号,比如\n等