Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1.  
  2.     private boolean readAllData(byte[] data) {
  3.         int readSoFar = 0;
  4.         int chunkSoFar = 0;
  5.         int iter = 0;
  6.         while(readSoFar < data.length) {
  7.             if(!isConnected()) {
  8.                 Log.d("readAllData", "connection lost. can't read");
  9.                 break;
  10.             }
  11.             int bytesLeft = data.length - readSoFar;
  12.             int chunkLeft = IO_MAX_CHUNK_SIZE - chunkSoFar;
  13.             int readThisTime = 0;
  14.             try {
  15.                 lastReadStart = System.currentTimeMillis();
  16.                 readThisTime = input.read(data, readSoFar, Math.min(bytesLeft, chunkLeft));
  17.                 iter++;
  18.             } catch (IOException e) {
  19.                 Log.d("readAllData", "chunkLeft"+chunkLeft+", iter"+iter);
  20.                 e.printStackTrace();
  21.             }
  22.  
  23.             if(readThisTime <= 0)
  24.                 break;
  25.             else {
  26.                 // After reading a chunk, ping server to confirm still connected
  27.                 readSoFar += readThisTime;
  28.                 chunkSoFar += readThisTime;
  29.                 if(chunkSoFar == IO_MAX_CHUNK_SIZE) {
  30.                     Log.d("readAllData", "pinging");
  31.                     try { output.write(0); }
  32.                     catch (IOException e) {
  33.                         e.printStackTrace();
  34.                         return false;
  35.                     }
  36.                     chunkSoFar = 0;
  37.                 }
  38.             }
  39.         }
  40.         if(readSoFar != data.length) {
  41.             Log.d("readAllData", "read "+readSoFar+" / "+data.length+" bytes");
  42.         }
  43.         return readSoFar == data.length;
  44.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement