- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
环境:Win 7/JRE 1.6.0_45/Netty 4.0.0_CR7
我的客户端应用程序正在使用 ChunkedByteInput 的实现将文件流式传输到 TCP 服务器。一个典型的 10 MB 大小的文件以每个 20 kB 的 block 传输,产生大约 500 个 block 。
TCP 连接是预先设置的(GUI 元素,如上传按钮在连接建立后启用),之后也不会关闭。相反,表示单个文件的 ChunkedByteInput 实现会在包含文件名和大小的 header block 前面加上一个带有文件的 MD5 哈希的页脚 block 。
通常情况下,一切都很好。但在随机情况下 (10-20%),传输在某个任意 block 后停止(ChunkedInput.readChunk() 不再被调用)。作为一种解决方法,我只是在检测到一段时间(比如 5 秒)的不活动后再次将不完整的输入再次写入 channel ,然后传输恢复并正常完成。但这显然是一个肮脏的黑客攻击。
知道是什么导致了这种行为吗?
编辑:这是Github上相关问题的链接: https://github.com/netty/netty/issues/1506
最佳答案
通过升级到 Netty 4.0.1 解决
关于java - 网络 4.0.0_CR7 : Chunked[Byte]Input does not always get drained completely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421350/
当我使用 sinfo我看到以下内容: $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST [...] RG3 up 2
Rust 具有排空整个序列的功能, If you do need to drain the entire sequence, use the full range, .., as the argume
从表面上看,两者都像drain和 into_iter提供类似的迭代器,即遍历集合的值。然而,它们是不同的: fn main() { let mut items1 = vec![0u8, 1,
我有这段代码: const file = fs.createWriteStream('./test.txt'); let written = true; // handler is added bef
documentation for write()说: Returns false to indicate that the kernel buffer is full, and the data w
来自 doc : write(data) Write data to the stream. This method is not subject to flow control. Calls to
在许多书籍和许多网站上,我看到 -drain。嗯,对于一个听起来很酷的自动释放池来说。但它除了发布之外还有其他作用吗?我猜 -drain 只是让池释放它的所有对象,而不释放池本身。只是猜测。 最佳答案
我正在使用 MongoMemoryServer 编写集成测试。我有两个集成测试文件。当我运行 IT 测试时,我看到以下内容。我不明白为什么。我正在使用 jestjs 测试框架。 当我有两个 IT 测试
我正在尝试使用以下程序写入一个大文件 // this program will result in "JavaScript heap out of memory" const fs = require
嗨,我们已经创建了一个从 pcf 到 logstash 的 Syslog Drain,但有时我们会得到 2018-07-19T15:09:53.524+05:30 [LGR/] [ERR] Syslo
我的游戏通过通常的方法播放声音: sdl.open(); sdl.start(); sdl.write(data, 0, data.length); sdl.drain(); sdl.stop();
我面临一个有趣的问题。我们运行基于状态的基于 HTTPS 的应用程序。状态是基于 session cookie 维护的。该应用程序的设计方式是,如果 session 突然终止,该应用程序将恢复到主屏幕
我正在创建一个短片然后播放它,调用 start() 方法。然后我调用 drain() 方法来阻止执行,直到剪辑播放完成。但是,多次运行下面的代码时,有时有效,有时无效,并且声音在结束前随机停止。 Mi
我在我的 Flutter 应用程序中按照 BLOC 模式使用 dart Streams,所以从逻辑上讲,每当我用完一个 Bloc 时,我都需要处理其中的所有流。 因此,在有状态小部件提供的处置方法上,
这是我的代码模板: int main(int argc, char *argv[]) { // create an autorelease pool NSAutoreleasePool
我正在尝试使用回调来指示所有 async worker 何时完成,但我遇到了可怕的 TypeError: callback is not a function. 我想单独处理数据中的每个元素,并在完成
我正在尝试在 Ubuntu Hardy 上编译以下 Objective-C 程序,但由于某些原因,我收到了警告。 #import int main (int argc, char *argv[])
我正在使用 cocos2d 制作一个基于加速度计的应用程序,我注意到可以设置加速度计更新间隔。 [[UIAccelerometer sharedAccelerometer] setUpdateInte
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: What's the difference between sending -release or -dra
医生说: In a garbage-collected environment, sending a drain message to a pool triggers garbage collecti
我是一名优秀的程序员,十分优秀!