【转】Netty之解决TCP粘包拆包(自定义协议)
1、什么是粘包/拆包 2、解决办法 消息定长 ,报文大小固定长度,不够空格补全,发送和接收方遵循相同的约定,这样即使粘包了通过接收方编程实现获取定长报文也能区分。 包尾添加特殊分隔符 ,例如每条报文结束都添加回车换行符(例如FTP协议)或者指定特殊字符作为报文分隔符,接收方通过特殊分隔符切分报文区分。 将消息分为消息头和消息体 ,消息头中包含表示信息的总长度(或者消息体长度)的字段 3、自定义协议,来实现TCP的粘包/拆包问题 4、协议相关的实现 [java] view plain copy print ? [java] view plain copy print ? [java] view plain copy print ? 5、服务端的实现 [java] view plain copy print ? 6、服务端Handler的实现 [java] view plain copy print ? 7、客户端的实现 [java] view plain copy print ? class) true) 8、客户端Handler的实现 [java] view plain copy print ? 9、参考的博客地址 [java] view plain copy print ? http: // www.cnblogs.com/whthomas/p/netty-custom