Hai provato a bufferizzare lo stream che leggi?

BufferedInputStream in = new BufferedInputStream(socket.
getInputStream());

o

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

Nel caso di file bibari è meglio che usi il primo modo.

poi alla fine fai un in.close() e socket.close()?