На первый взгляд похоже, что ваш вызов in.readLine () блокируется, поскольку еще не встретил символ новой строки.
Таким образом, он блокируется до тех пор, пока не прервется ваше соединение.
Попробуйте метод чтения BufferedReader:
public int read(char[] cbuf,
int off,
int len)
и передать массив фиксированной длины, например:
char[] cbuf = new char[1024];
Используйте возвращаемое значение вызова чтения, чтобы увидеть, сколько байтов было в последнем чтении (0-1024).
если вы прочитаете 1024, то, вероятно, еще что-то прочитаете. Если вы читаете 0, то, скорее всего, больше нечего читать.