解决粘包半包问题--分隔符和消息定长

时间:2023-11-26 09:47:06
【文件属性】:

文件名称:解决粘包半包问题--分隔符和消息定长

文件大小: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)

网友评论