这个示例是一个http server,经测试打开htm正常显示,下载几十兆也能下载,但是我下载几百兆文件时,报错如下:
RequestHandler: java.io.IOException: 由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。经我进一步查看,发现是ChannelIO.java中的
long transferTo(FileChannel fc, long pos, long len) throws IOException { return fc.transferTo(pos, len, sc);
}抛出异常错误~~~~
向各位请教一下,该如何解决这个问题,谢谢~~~~
RequestHandler: java.io.IOException: 由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。经我进一步查看,发现是ChannelIO.java中的
long transferTo(FileChannel fc, long pos, long len) throws IOException { return fc.transferTo(pos, len, sc);
}抛出异常错误~~~~
向各位请教一下,该如何解决这个问题,谢谢~~~~
解决方案 »
- 你不一定做得出来额!不行就来试试。
- 请求高手:我想问一下这个语句public static void main(String a[]) 中的String a[]是什么意思
- 如何把一个类向下转型为它的内部类?
- java串口程序出了个错误,我不知道哪里有错?请高手指点下,谢谢~~
- 有没有点日历上的某一天就能弹出个页面的。。。。。。
- 请问如何让页面自动跳转?
- 一个关于javacc的问题,请高手指教!谢谢
- java
- 如何得到一个客户机的mac地址,request对象是否有这样的方法
- 如何保持JavaApplication与HttpServer的会话?
- 请问下面一代码是什么意思?
- 父类static方法 为什么子类非静态方法可以调用?
建议,每个分组的最大长度为512个字节。
long pos = ... ; long len = ... ;
final long MAX_SIZE = 1<<19;//512K个字节
long curPos = pos;
while(curPos+MAX_SIZE<pos+len){
sc.transferTo(fc,curPos,MAX_SIZE);
curPos += MAX_SIZE;
}
sc.transferTo(fc,curPos,pos+len-curPos);
请各们高手继续帮忙解决一下,谢谢
不知是不是跟操作系统有关系