Проблема в том, что incoming.readLine()
вернет null
, только если сокет закрыт, в противном случае он заблокирует и будет ждать ввода от сервера.
Если вы можете изменить сервер, вы можете добавить отметку о том, что запрос был полностью обработан, а затем проверить его следующим образом while ((response = incoming.readLine()) != "--finished--")
.
Если вы не можете, попробуйте это:
while(response.isEmpty()){
if(incoming.ready()){ //check if there is stuff to read
while ((response = incoming.readLine()) != null){
System.out.println(response);
sb.append(response);
sb.append('\n');
}
}
}