con.setReadTimeout(10000000000......); 
con.setConnectTimeout(100000000......); 

解决方案 »

  1.   

    大家可以参考sun的api,con.setReadTimeout(0); 
    con.setConnectTimeout(0); 中如果方法传入参数为零,则表示超时时间为infinity,所以不存在超时时间的问题,2楼兄弟的建议很好,不过这样需要大改,hoho...
      

  2.   

    你这需求不等于就是等于在web页面提交一个附件表单到服务器吗?
    不就是文件上传吗?
    但是为什么要用urlconnection 呢? 难道是swing程序的请求?直接用apahce的 httpclient包 创建一个附件上传表单提交请求
      

  3.   

    1.加con.setAllowUserInteraction(true);试试。(估计没有用处)
    2.如果1没用,用
    con.getReadTimeout(); 
    con.getConnectTimeout();看看,并catch SocketTimeoutException异常看看。
    3.如果2还没有用
      给setReadTimeout以及setConnectTimeout具体数值。
    4.如果3还没有用,楼主能确定文件在服务端已经正确生成?
    5.如果4还没有用~~~~
      

  4.   

    非常感谢8楼仁兄的建议,我也一一测试了
    第一点,好像没什么关系,因为client和server已经可以互动了。
    第二点,我已经将setReadTimeout()和setConnectionTimeout设置成为99999999
    第三点:非常确定以及肯定的是文件已经在server端生成,但是就是无法将结果文件返回给客户端,这里要补充一句的是,如果在运行时间比较短并且结果文件比较小的情况(这两个一般成比例),客户端可以拿到结果文件。但是一旦运行时间比较长,客户端则不能收到文件的数据流了。
      

  5.   

    客户端一直处于阻塞状态,就是没有收到任何数据。
    还有11楼的大哥,why sleep?
      

  6.   

    File transferFile = new File(downloadFilePath); 
    if (transferFile.exists())
    我的理解,这个是保存你已经生成文件的。
    但是如果此时文件没有生成,将不会发到客户端。
    我不知道你这段代码外面是否会循环检测文件的生成。
      

  7.   

    第三点:非常确定以及肯定的是文件已经在server端生成,但是就是无法将结果文件返回给客户端,这里要补充一句的是,如果在运行时间比较短并且结果文件比较小的情况(这两个一般成比例),客户端可以拿到结果文件。但是一旦运行时间比较长,客户端则不能收到文件的数据流了。
      

  8.   

    把异常抓出来看看,把ReadTimeout和ConnectTimeout打印出来看看。
      

  9.   

    File transferFile = new File(downloadFilePath);
    downloadFilePath是个变量还是什么啊,本人菜鸟,能给写详细点儿吗,谢了!!!