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()?