文件名称:解决粘包半包问题--分隔符和消息定长
文件大小:9KB
文件格式:ZIP
更新时间:2023-11-26 09:47:06
netty java
由于底层的 TCP 无法理解上层的业务数据, 所以在底层是无法保证数据包不被拆分和重 组的, 这个问题只能通过上层的应用协议栈设计来解决, 根据业界的主流协议的解决方案, 可以归纳如下。 (1) 在包尾增加分割符, 比如回车换行符进行分割, 例如 FTP 协议; (2) 消息定长, 例如每个报文的大小为固定长度 200 字节, 如果不够, 空位补空格;
【文件预览】:
fixed
----FixedLengthEchoClient.java(2KB)
----FixedLengthClientHandler.java(1KB)
----FixedLengthServerHandler.java(1KB)
----FixedLengthEchoServer.java(2KB)
delimiter
----DelimiterEchoServer.java(3KB)
----DelimiterEchoClient.java(2KB)
----DelimiterServerHandler.java(2KB)
----DelimiterClientHandler.java(1KB)