Проблема в том, что вы используете BufferedOutputStream и закрываете сокет сразу после записи в PrintWriter. То, что вы написали, остается в буфере, и сокет закрывается до того, как что-либо будет отправлено клиенту.
Вам нужно flush
перед закрытием, чтобы принудительно отправить содержимое буфера:
...
//close socket
pw.flush();
rs.close();
...
TimeClient содержит незначительную ошибку: вы зацикливаетесь на получении, пока не получите -1
, что является правильным, но вы добавляете это -1
к StringBuilder
, что неверно. Должно быть:
//while loop reads each character into stringbuilder
while(true){
c = isr.read();
if (c == -1) { break; }
sb.append((char) c);
}
Но это никогда не должно мешать отображению текста ...