我在我的项目中使用 netty-3.5.3.Final 来传输文件。不幸的是,有时我会得到错误的数据。例如,我正在下载 1 GB 的文件大小。收到文件后包含5个“错误”。所有错误都会影响单个字节。这是一个“合乎逻辑”的变化
Ë -> ë (CB -> EB) C+2 = E
À -> à (C0 -> E0) C+2 = E
Ú -> ú (DA -> FA) D+2 = F
œ -> ¼ (9C -> BC) 9+2 = B
-> $ (04 -> 24) 0+2 = 2
e.t.c.
(Not every Ë becomes ë, only ~1/100000000...000..)
文件获取过程:
ChannelBuffer buf = (ChannelBuffer) e.getMessage(); //SimpleChannelHandler.messageReceived(...)..
ByteBuffer bbuf = buf.toByteBuffer();
RandomAccessFile bos = new RandomAccessFile(...,"rw");
bos.write(bbuf.array(), 0, bbuf.position());
bos.close();
数据不会有任何变化。为什么会发生?