Netty 4.0.0_CR7:Chunked [Byte]输入并不总是完全耗尽

时间:2013-07-02 08:55:53

标签: java netty

环境:赢7 / JRE 1.6.0_45 / Netty 4.0.0_CR7

我的客户端应用程序使用ChunkedByteInput的实现将文件流式传输到TCP服务器。典型的10 MB大小的文件以每个20 kB的块传输,产生大约500个块。

预先设置TCP连接(GUI元素,例如在建立连接后启用上载按钮),之后也不会关闭。相反,表示单个文件的ChunkedByteInput实现会预先包含一个包含文件名和大小的标题块,并使用文件的MD5哈希附加一个页脚块。

通常,一切都很顺利。但在随机情况下(10-20%),传输在一些任意块之后停止(ChunkedInput.readChunk()不再被调用)。作为一种解决方法,我只是在检测到一段不活动的延长时间(比如5秒)之后再次将不完整的输入写入通道,并且传输恢复并正常完成。但这显然是一个肮脏的黑客。

知道造成这种行为的原因是什么?

编辑:以下是Github上相关问题的链接: https://github.com/netty/netty/issues/1506

1 个答案:

答案 0 :(得分:0)

通过升级到Netty 4.0.1来解决