Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Netty精粹之TCP粘包拆包问题 PDF 下载


分享到:
时间:2025-01-12 11:21来源:http://www.java1234.com 作者:转载  侵权举报
Netty精粹之TCP粘包拆包问题
失效链接处理
Netty精粹之TCP粘包拆包问题 PDF 下载

 
 
相关截图:
 


主要内容:


什么是粘包、拆包?
对于什么是粘包、拆包问题,我想先举两个简单的应用场景:
1. 客户端和服务器建立一个连接,客户端发送一条消息,客户端关闭与服务端的连接。
2. 客户端和服务器简历一个连接,客户端连续发送两条消息,客户端关闭与服务端的连
接。
对于第一种情况,服务端的处理流程可以是这样的:当客户端与服务端的连接建立成功之
后,服务端不断读取客户端发送过来的数据,当客户端与服务端连接断开之后,服务端知道
已经读完了一条消息,然后进行解码和后续处理...。对于第二种情况,如果按照上面相同的
处理逻辑来处理,那就有问题了,我们来看看第二种情况下客户端发送的两条消息递交到服
务端有可能出现的情况:
 
第一种情况:
服务端一共读到两个数据包,第一个包包含客户端发出的第一条消息的完整信息,第二个包
包含客户端发出的第二条消息,那这种情况比较好处理,服务器只需要简单的从网络缓冲区
去读就好了,第一次读到第一条消息的完整信息,消费完再从网络缓冲区将第二条完整消息
读出来消费。
 
第二种情况:
服务端一共就读到一个数据包,这个数据包包含客户端发出的两条消息的完整信息,这个时
候基于之前逻辑实现的服务端就蒙了,因为服务端不知道第一条消息从哪儿结束和第二条消
息从哪儿开始,这种情况其实是发生了TCP粘包。


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐