byte[] b = new byte[1024*32];
            int count = 0;
                       
            dataSocket = new Socket(ftpClient.IPAddress, dataPort);
            dataSocket.setSoTimeout(ftpClient.iTimeout);
            dataIN = dataSocket.getInputStream();
            while ( -1 != (count = dataIN.read(b)))
            {                
                Result.Total_Bytes += count;
                System.out.print(" count=" + count);
            }
如果想控制read的时间,应该用什么函数,为了防止在网络慢的情况下一直进行ftp传送。
可以设置一次传送的最大时长的函数

解决方案 »

  1.   

    你已经设置了dataSocket.setSoTimeout(ftpClient.iTimeout);这样可以保证在网络出现问题的时候数据一直无法获得时就会抛出异常
    如果你考虑是总体时间而不管是不是只是网络很慢的话,你就必须自己去控制了。你只要在while中判断是不是已经超过时间了,是则退出
      

  2.   

    谢谢,但是如果我想最大传输一个文件为10分钟的话,如果网络状况很差而且文件很大的情况下,在while里面控制时间的话,当程序走到count = dataIN.read(b)的时候,它应该会一直读下去的吧,不会跳回while里面,直到读完这个文件为止的吧。