0 0

servlet下载 问题 ,求解3

最近写了一个servlet 用来处理下载,客户端是一个swing程序,在本机的时候测试成功,但移到服务器,用外网地址连接后,小文件还行,可以下载,但大的文件就下载不下来,文件大小40M左右吧; 下载到一部分的时候就停了 ,随后服务端就报下面的错(报错日志); 后通过局域网地址来访问那台服务器,下载也是正常的,切换成外网就出现了这个错误 ,很是郁闷 ~,打电话咨询网管 ,网管说只开通了一个端口 ,举例 7001, 其他的端口都没有开通 ,在客户端我用的时候也是用,网管问我用没用到其他端口 ,我就蒙了 ,我哪知道还用到了什么端口 ,这里请教各位高手,希望能有所解答 ~

客户端连接的代码:
URL url = new URL("ip:7001");
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();

报错日志:
java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at weblogic.servlet.internal.ChunkOutput.writeChunkNoTransfer(ChunkOutput.java:548)
        at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:505)
        at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:382)
        at weblogic.servlet.internal.ChunkOutput.checkForFlush(ChunkOutput.java:469)
        at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:304)
        at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:143)
        at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:169)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
        at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
        at com.ufgov.app.maintain.download.servlet.DownloadBundleServlet.doGet(DownloadBundleServlet.java:101)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.ufgov.common.util.EncodingFilter.doFilter(EncodingFilter.java:29)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)

问题补充:
khan 写道
用http 的 长连接试试,网络不好导致的问题,
Connection: Keep-Alive


现在这个本身就是长连接 ~,我断点查看了request,和response, 发现都有
Connection: Keep-Alive 这个属性 ,
服务端在write()的时候停了很长时间,然后报错 ~

问题补充:UDP 下载~ 这样会不会很麻烦呢?
我的服务端是一个web项目, 问题我基本查出来了 ,和我们内网权限软件有关,应该是限制下载,下载速度过快就被封端口 ~不知道该怎么解决了 ~
jkxydp 写道
既然是用C/S模式的东西,何不直接用UDP来传输大文件呢?tcp觉得在internet上传输大文件不适合。


问题补充:没用过这些东西 ~~,但还是要谢谢了 呵呵
OpenMind 写道
CS模式建议不要用http的方式下载,可以使用MQ,比如ActiveMQ等等。

2011年12月21日 16:13

4个答案 按时间排序 按投票排序

0 0

或者用netty,推荐用netty吧

2011年12月22日 12:41
0 0

CS模式建议不要用http的方式下载,可以使用MQ,比如ActiveMQ等等。

2011年12月22日 12:41
0 0

既然是用C/S模式的东西,何不直接用UDP来传输大文件呢?tcp觉得在internet上传输大文件不适合。

2011年12月22日 09:26
0 0

用http 的 长连接试试,网络不好导致的问题,
Connection: Keep-Alive

2011年12月21日 16:57

相关推荐

    编写jsp页面实现如下界面效果,然后交给servlet计算矩形的周长和面积,并输出结果。

    在本项目中,我们需要使用JavaServer Pages(JSP)技术和Servlet来实现一个简单的Web应用程序,该程序能够接收用户输入的矩形的长度和宽度,计算并显示矩形的周长和面积。首先,我们来看看各个文件的作用。 1. **...

    ACM.zip_ACM_Core Servlet_acm教程

    《ACM核心Servlet教程》是一份专为ACM竞赛爱好者准备的高质量培训资源。这个压缩包包含了一系列关于算法、编程技巧以及ACM竞赛策略的教程,适合那些希望提升自己在ACM竞赛中表现的同学。 首先,"SWOJ.7z"可能是一个...

    Sudoku_Servlet:Java

    经典数独游戏的Java Servlet 创建过程中的每个Sudoku问题都可以通过自然算法(SudokuSolver.java)解决。 该算法检查问题是否只有一种逻辑解决方案。 如果有多个解决方案,则会产生一个新的Sudoku问题。 通过该算法...

    java编程艺术

    mail客户端和Internet搜索、用Java修饰HTML、显示统计图表、金融应用中的Applet和Servlet、基于AI的问题求解等,每章给出的示例代码都可以直接运行,无需修改,而且读者可以从www.osborne.com站点上免费下载这些代码...

    tomcat8.0,eclipse,jdk,俄罗斯方块,迷宫求解,选课系统c语言代码

    1. **Tomcat 8.0**:Tomcat是一款开源的Java Servlet容器,用于部署和运行Java Web应用程序。Tomcat 8.0是其的一个版本,它支持Java EE 7规范,提供了更高的性能和稳定性。Tomcat以其轻量级、易于配置和管理的特点,...

    浏览器套接字网络路径规划~

    文档中提到了如何借鉴遗传算法来求解旅行商问题(TSP),即找到一条经过所有点并最终返回起点的最短路径。 3. 旅行商问题(TSP):TSP是组合优化领域中的一个经典问题,目标是找到一条闭合路径,使得旅行者访问每个...

    jsp计算一元二次方程的根

    在本实验中,我们将探讨如何使用Java Servlet和JSP技术结合Bean类来计算一元二次方程的根。一元二次方程的一般形式为ax² + bx + c = 0,其中a、b、c为系数,且a不等于0。计算一元二次方程的根涉及到数学上的求根...

    Java语言程序设计第8版 习题解答+例题程序

    6. **Java EE相关**:Servlet、JSP、EJB等企业级应用开发的基础知识。 书本上的例题程序则为每章的关键概念提供了示例代码,这些例子通常包括: 1. **基本程序设计**:简单的输出、输入和计算程序。 2. **面向对象...

    课堂笔记(韩顺平)

    求解数组最大值或最小值,可以初始化一个变量,然后逐一与其他数组元素比较,更新最大或最小值。 7. **Servlet生命周期与HTTP工作流程**: Servlet的生命周期包括`init`、`service`和`destroy`三个阶段。`init`...

    韩顺平笔记4

    - 求解数组的最大值或最小值,可以初始化一个变量,然后遍历数组进行比较更新。 7. **Servlet生命周期**: - Servlet的生命周期包括初始化(init)、服务(service)、销毁(destroy)三个阶段。 - `init`函数在...

    八数码问题程序A星算法JAVAWEB

    在JAVAWEB中,可以使用Servlet和JSP技术来构建Web应用,用户可以通过网页输入初始状态和目标状态,服务器端的Java代码执行A*算法求解,并将结果返回给前端展示。为了提高用户体验,可以设计动态的界面,实时显示搜索...

    matlab-power-flow-0005_www.matlabsite.com.zip_Jsp/Servlet_matlab_

    潮流计算通常基于牛顿-拉夫森迭代法,通过建立电力网络的节点平衡方程来求解电压和功率。在Matlab中,用户可以自定义算法实现这一过程,或者使用内置的电力系统工具箱(Power System Toolbox)提供的函数。 2. **...

    JSP自动排课管理系统(源代码+论文+开题报告)_jsp_java源程序代码.rar

    自动排课问题是一个典型的组合优化问题,通常采用贪心算法、回溯法或者遗传算法等方法来求解。系统需要考虑的因素可能包括:课程冲突、教室容量、教师课时限制等。算法的设计需要兼顾效率和准确性。 6. **用户界面...

    Java编程艺术 PDF

    mail客户端和Internet搜索、用Java修饰HTML、显示统计图表、金融应用中的Applet和Servlet、基于AI的问题求解等,每章给出的示例代码都可以直接运行,无需修改,而且读者可以从www.osborne.com站点上免费下载这些代码...

    java 编程艺术

    mail客户端和Internet搜索、用Java修饰HTML、显示统计图表、金融应用中的Applet和Servlet、基于AI的问题求解等,每章给出的示例代码都可以直接运行,无需修改,而且读者可以从www.osborne.com站点上免费下载这些代码...

    动态规划的解析法和数值法

    问题描述:给定一个线性规划问题,求解最优解。 \[ \begin{aligned} & \text{最大化 } Z = 6x_3 \\ & \text{约束条件 } 5x_3 \leq s_3 \end{aligned} \] 解法步骤: 1. 定义决策变量\( x_3 \)和状态变量\( s_3 \)...

    keep面经,动手能力太差啊啊啊啊keep面经,动手能力太差啊啊啊啊.pdf

    16. Servlet和Web容器:理解servlet的执行过程以及过滤器和拦截器的区别与作用。 17. HTTP与HTTPS:掌握HTTP请求与响应的格式、头部字段以及HTTP与HTTPS的区别。 18. Spring事务管理:了解Spring事务的实现原理,...

    专业课程设计II报告_B150210301

    在解决工程问题时,学生需结合计算机软硬件资源,合理选择技术手段,如选用适当的算法、数据结构和数据存储方式,对问题进行建模和求解。程序设计语言和编程开发平台的选择也是重要环节,同时掌握调试技巧,对可能...

Global site tag (gtag.js) - Google Analytics