Netty 如何接收多个chunkedfile

Netty 如何接收多个chunkedfile,netty,Netty,我正在构建一个客户端/服务器上传应用程序。 客户端将向服务器发送多个大文件 我已经找到了ChunkedInput类,比如ChunkedFile,它只将文件的块发送到服务器。 客户端只将ChunkedWriteHandler添加到管道中,然后一个接一个地发送文件(是否正确?) //客户端代码片段 public void initChannel(SocketChannel ch)引发异常{ ch.pipeline().addLast(新的ChunkedWriteHandler()); } 公共无效发

我正在构建一个客户端/服务器上传应用程序。 客户端将向服务器发送多个大文件

我已经找到了ChunkedInput类,比如ChunkedFile,它只将文件的块发送到服务器。 客户端只将ChunkedWriteHandler添加到管道中,然后一个接一个地发送文件(是否正确?)

//客户端代码片段
public void initChannel(SocketChannel ch)引发异常{
ch.pipeline().addLast(新的ChunkedWriteHandler());
}
公共无效发送(频道、列表文件){
for(Iterator Iterator=files.Iterator();Iterator.hasNext();){
File=iterator.next();
channel.write(file.length());
ChannelFuture cf=channel.writeAndFlush(新的ChunkedFile(文件));
cf.wait();
}
但我在服务器端到底在做什么? 我如何实现第一个文件的结尾?ChunkedFile没有发送文件大小和它的块对吗? 也许有人可以发布服务器端的代码片段?
提前谢谢

我自己找到了解决办法

问题似乎在于

channel.write(file.length());

我得给频道写一封短信

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeLong(file.length());
dos.flush();
channel.write(new ChunkedStream(new ByteArrayInputStream(baos.toByteArray())));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeLong(file.length());
dos.flush();
channel.write(new ChunkedStream(new ByteArrayInputStream(baos.toByteArray())));