I have this piece of code executed inside a Thread public void run() { Socket socket = new Socket("hostname", Integer.parseInt("4444")); InputStreamReader input = new InputStreamReader(socket.getInputStreamReader()); BufferedReader in = new BufferedReader(input); System.out.println("start....."); while (true){ if (in.ready()){ int x = in.read(); // do processes } } } This piece of code works fine but I have this problem. After sometime...the host connection suddenly ...